百木园-与人分享,
就是让自己快乐。

python推导式

推导式

列表

过滤掉长度小于或等于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)

 


来源:https://www.cnblogs.com/wxy214/p/15972688.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » python推导式

相关推荐

  • 暂无文章