过滤掉长度小于或等于3的字符串列表,并将剩下的转换成大写字母:
names = ['Bob','Tom','alice','Jerry','Wendy','Smith'] new_names=[name.upper() for name in names if len(name)>3] print(new_names)
['ALICE', 'JERRY', 'WENDY', 'SMITH']
计算 30 以内可以被 3 整除的整数:
nums=[x for x in range(1,30) if x%3==0] print(nums)
[3, 6, 9, 12, 15, 18, 21, 24, 27]
使用字符串及其长度创建字典:
listdemo = ['Google','Runoob', 'Taobao'] l={key:len(key) for key in listdemo} print(l)
提供三个数字,以三个数字为键,三个数字的平方为值来创建字典:
listdemo = [1,2,3] l={key:key**2 for key in listdemo} print(l)
{1: 1, 2: 4, 3: 9}
计算数字 1,2,3 的平方数:
new_set={x**2 for x in (1,2,3)} print(new_set)
{1,4,9}
判断不是 abc 的字母并输出:
a={x for x in "abdce" if x not in 'abc'} print(a)
{'d', 'e'}
元组推导式和列表推导式的用法也完全相同,只是元组推导式是用 () 圆括号将各部分括起来,而列表推导式用的是中括号 [],另外元组推导式返回的结果是一个生成器对象。
生成一个包含数字 1~9 的元组:
a=(x for x in range(1,10)) print(a) print(tuple(a))# 使用 tuple() 函数,可以直接将生成器对象转换成元组
<generator object <genexpr> at 0x0000020B713ACC10> (1, 2, 3, 4, 5, 6, 7, 8, 9)