首页 > 其他分享 >集合推导式

集合推导式

时间:2024-03-03 19:33:43浏览次数:21  
标签:name 推导 money age 18 集合

集合推导式

集合推导式是一种简洁的构造集合的方式。它的语法和列表推导式类似,只不过结果是一个集合,而不是列表。

以下是一个示例,其中我们要根据一组人的年龄和存款量来决定给他们发放哪种类型的卡。我们要统计所有可能的卡类型。

lst = [
    {"name":"赵沈阳","age":18,"money":3000},
    {"name":"赵万里","age":19,"money":5200},
    {"name":"赵蜂拥","age":20,"money":100000},
    {"name":"赵世超","age":21,"money":1000},
    {"name":"王志国","age":18,"money":5500},
    {"name":"王永飞","age":99,"money":5500}
]

我们可以使用循环和条件判断来统计卡类型:

setvar = set()
for i in lst:
    if 18 <= i["age"] <= 21 and 5000 <= i["money"] <= 5500:
        res = "尊贵VIP卡老{}".format(i["name"][0])
    else:
        res = "抠脚大汉卡老{}".format(i["name"][0])
    setvar.add(res)
print(setvar)

或者,我们可以使用集合推导式来简化这个过程:

setvar = { "尊贵VIP卡老{}".format(i["name"][0]) if 18 <= i["age"] <= 21 and 5000 <= i["money"] <= 5500 else "抠脚大汉卡老{}".format(i["name"][0]) for i in lst }
print(setvar)

在这个例子中,我们使用了三元运算符来根据条件选择卡的类型,然后使用集合推导式来构造结果集合。

标签:name,推导,money,age,18,集合
From: https://www.cnblogs.com/wbcde116/p/18050539

相关文章

  • 列表推导式
    推导式推导式是通过一行循环判断遍历出一些列数据的方法。语法:valforvaliniterable#创建一个包含1到50的列表:lst=[iforiinrange(1,51)]print(lst)带有运算操作的推导式创建一个列表,其中每个元素都是原始列表中对应元素的两倍:lst=[i*2foriinrange(1,6)......
  • C#的 ArrayList集合 和 List 集合
    //集合&字典的初识//集合的使用//集合与数组比较类似,都用于存放一组值//数组的优劣势分析//1.优势:数组在内存中是连续存储的,所以他的索引速度非常的快,而且赋值与修改元素也很简单//2.劣势:在数组的连个数据之间插入数据很麻烦在声明数组的时候,必须同时指明数组的......
  • 5-Redis十大关系之集合Set
    redis十大关系之集合Set(value不重复)添加元素:SADDkeymember[member...]遍历集合中所有元素:SMEMBERSkey判断元素是否在集合中:SISMEMBERkeymember删除元素:SREMkeymember[member...]获取集合里面元素的个数:SCARDkey从集合中随机展现设置的数字个数元素,元素不删除......
  • python推导式(comprehension)
    #推导式#1.zip()函数##功能:将多个迭代器Iterator对象或者可迭代对象中的元素压缩在一起,返回一个zip对象##zip对象既是一个可迭代对象也是一个迭代器对象names=["Tony","Tom","Gray","Lisa"]grades=[11,22,31,21]chart1=zip(names,grades)print(list(ch......
  • C++填坑系列——EffectiveModernC++之类型推导
    接下来会记录我在学习《EffectiveModernC++》的一些总结和思考。鉴于C++的知识太多了,我难以全面覆盖到学习,所以这里借此来补充和发散自己的学习心得:)以下内容由学习这个网站EffectiveModernC++的中文翻译内容得来https://cntransgroup.github.io/EffectiveModernCppChine......
  • C++填坑系列——类型推导 decltype
    decltypedecltype主要是为了解决类型推导的问题,特别是在模板编程和泛型编程中应用较广泛。decltype关键字用于以表达式为参数,推导表达式返回的类型,该类型会保留所有信息。c++11提出的新特性,decltype关键字。和auto一样都是用来做编译时类型推导的,但是也有一些区别:auto:从......
  • python列表、集合、字典转换要点以及查找速度区别,如何在大规模数据中实现快速查找
    1.list与set的区别与优缺点:循环速度:list最适合做固定长度的遍历,而且有顺序。set是无序的,list转换为set会乱序,若用set给list去重,转化为list时须用原list的index排序:new_list.sort(key=old_list.index)。所以这种循环尽量用list查询速度:set>list,set查询的key都是ha......
  • 最短路算法模版集合
    例题https://www.luogu.com.cn/problem/P1339朴素dijkstra(邻接表)dijkstra正确性来自于贪心也就是st数组内的数(dist)必须逐渐变大这样才能保证后面的数更新的时候,当前的第三边dist[t]都是最小值[详见](https://www.acwing.com/solution/content/94237/)dist[x]表示x......
  • 韩顺平java基础-14-集合
    韩顺平java基础-14-集合集合介绍理解好处框架体系图主要有两组Collection(单列集合)\Map(双列集合)CollectionCollection通用方法遍历迭代器遍历iterator底层原理:hasNext()快捷键:ctrl+j增强for循环本质仍然是iterator在集合和数组中均可以使用List通用......
  • ubuntu日常开发问题集合
    VMware虚拟机和主机间复制粘贴共享剪贴板https://blog.csdn.net/appleKevin/article/details/134227123#!/bin/bashset-oerrexit######################################root@second:/opt#lsb_release-a#NoLSBmodulesareavailable.#DistributorID:Ubuntu#De......