繁体   English   中英

Python列表理解

[英]Python list comprehension understanding

我在帮助下编写了一些代码,并且试图了解特定行的含义:

rec = [f[0:-2] for f in List if f[-1] == i][0]

我知道这是一个列表推导,它采用列表中的值,当等于另一个变量i时减去最后2个值。

在这种情况下, [0]做什么?

从结果列表对象中获取第一个过滤的元素是一种低效的方法。

[f[0:-2] for f in List if f[-1] == i]

是列表推导,产生一个新的列表对象。 然后用[0]为该对象建立索引以获取第一个值。

您可以将其重写为:

tmp = [f[0:-2] for f in List if f[-1] == i]
rec = tmp[0]
del tmp

并获得相同的结果。

有效的方法是将next()生成器表达式一起使用

rec = next(f[:-2] for f in List if f[-1] == i)

这只会遍历List直到找到与测试匹配的第一个f ,而不是首先产生所有此类匹配,然后再次丢弃list对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM