内置函数:zip、filter、map、stored

zip:多个可迭代对象,从开始,一对一返回一个元组

a = ('a','b','c ','c')
b = ('a','b','c','c')
ret = zip(a,b)
for i in ret:
    print(i)
print(list(zip(a,b)))

#打印
('a', 'a')
('b', 'b')
('c ', 'c')
('c', 'c')
[('a', 'a'), ('b', 'b'), ('c ', 'c'), ('c', 'c')]

 filter:筛选,过滤掉不符合条件的元素,返回由符合条件元素组成的迭代器对象。 
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新对象中

l = [1,2,3,-1,-5,0,51]
func = filter(lambda x : x > 0,l)
for i in func:
    print(i)

#打印:
1
2
3
51

 

map:map()函数接收两个参数,一个是函数,一个是序列,将传入的函数依次作用到序列的每个元素,并把结果作为新的l对象中返回,map()为迭代器。

l = [1,2,3,-1,-5,0,51]
func = map(lambda x : x + 1,l)
for i in func:
    print(i)

#打印
2
3
4
0
-4
1
52

 

sorted:排序,与列表的内置方法sort不同,sorted对所有可迭代对象进行排序,是新建一个内存进行排序,不会影响原有列表

l = [1,2,3,-1,-5,0,51]
info_sort = sorted(l,key= abs)
print(info_sort)

#打印:
[0, 1, -1, 2, 3, -5, 51]

 

转载于:https://www.cnblogs.com/aizhinong/p/11402754.html

### QVariant::toMap() 的使用方法 `QVariant::toMap()` 是 `QVariant` 提供的一个成员函数,用于将存储在 `QVariant` 中的键值对映射提取为一个 `QVariantMap`(即 `QMap<QString, QVariant>`)。此功能通常用于处理嵌套结构的数据,在 Qt 应用程序中非常常见。 以下是关于 `QVariant::toMap()` 的详细说明及其实际使用的代码示例: #### 1. 基本概念 当 `QVariant` 存储的是一个 `QMap<QString, QVariant>` 或类似的关联容器时,可以通过调用 `toMap()` 将其转换回原始的 `QMap` 数据结构。如果内部数据不是有效的 `QMap` 类型,则返回的结果将是空的 `QVariantMap`[^2]。 #### 2. 示例代码 下面是一个完整的代码示例,展示如何创建并操作包含 `QMap` 的 `QVariant` 对象,并通过 `toMap()` 方法提取其中的内容。 ```cpp #include <QCoreApplication> #include <QVariant> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // 创建一个 QMap 并填充一些数据 QMap<QString, QVariant> map; map.insert("key_int", 42); map.insert("key_string", QString("Hello")); // 将 QMap 转换为 QVariant QVariant variant = QVariant::fromValue(map); // 使用 toMap() 提取原始的 QMap QVariantMap extractedMap = variant.toMap(); // 输出结果 qDebug() << "Extracted Map:" << extractedMap; return a.exec(); } ``` 在这个例子中: - 首先定义了一个 `QMap<QString, QVariant>`,并向其中插入了一些键值对。 - 接着利用 `QVariant::fromValue()` 函数将其封装到 `QVariant` 容器中。 - 最后通过 `variant.toMap()` 方法恢复了原来的 `QMap` 结构,并打印出来验证结果。 #### 3. 动态类型检查 为了确保安全性和可靠性,在尝试调用 `toMap()` 之前,建议先确认当前 `QVariant` 是否确实保存了一张地图类型的对象。这可以通过 `canConvert<QVariantMap>()` 来实现: ```cpp if (variant.canConvert<QVariantMap>()) { QVariantMap result = variant.toMap(); } else { qWarning() << "The stored data is not convertible to QVariantMap."; } ``` 这种做法能够有效防止因误判而导致的应用崩溃风险[^3]。 --- ### 总结 综上所述,`QVariant::toMap()` 主要应用于从 `QVariant` 实例里获取底层所代表的实际 `QMap` 数据表单;它特别适合那些需要灵活管理复杂或者未知格式化资料流的情况之下运用。同时记得总是执行必要的前期检测步骤以保障程序稳定性[^1]^。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值