python列表生成式判断_Python列表生成式

转载至:http://blog.csdn.net/watermusicyes/article/details/43762551

在python中,列表生成式是一种可以便捷地生成列表的表达式。 有的时候可替代list.append()。

如果要生成[1*1 , 2*2 , 3*3 , ... , 10*10] 怎么做呢?可以使用循环:

>>> L= []

>>> for x in range(1 , 10):

... L.append(x*x)

...

>>> L

[1, 4, 9, 16, 25, 36, 49, 64, 81]

而列表生成式,可以用一句代替以上的繁琐循环来完成上面的操作:

>>> print [x*x for x in range(1 , 11)]

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

>>>

列表生成式的书写格式:[x*x for x in range(1 , 11)]

第一:把要生成的元素 x*x 放到前面

第二:后面跟上for循环

这样就可以把list创建出来。

for循环后面还可以加上if判断,这样可以筛选出偶数的平方:

>>> [x*x for x in range(1 , 11) if x%2 == 0]

[4, 16, 36, 64, 100]

>>>

当然,可以使用两层循环,生成全排列:

>>> print [m + n for m in ‘ABCD‘ for n in ‘XYZ‘]

[‘AX‘, ‘AY‘, ‘AZ‘, ‘BX‘, ‘BY‘, ‘BZ‘, ‘CX‘, ‘CY‘, ‘CZ‘, ‘DX‘, ‘DY‘, ‘DZ‘]

>>>

如何使用两个变量来生成list:

d = {‘Java‘:"99" , ‘C‘:"99" , ‘C++‘:"99" }

L = [k+‘=‘+v for k , v in d.iteritems()]

print L

原文:http://www.cnblogs.com/snapeliu/p/4965883.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值