2015-10-14 110 views
-5

我在Python中发现了很多关于列表的文档。但我没有找到以下情况的答案:查找列表中的唯一元素

我有一个这样的列表:[False, False, False, VARIABLE, False, False]

为了获得每个元素上没有for循环且使用列表理解的VARIABLE值(是整数),是否存在一种方法?一种“哪个”,为了说:选择列表中的项目不是假的。

重要的一点是,VARIABLE在列表中始终是唯一的。列表中不可能有两个VARIABLE。

编辑

在我的情况下,通过@AChampion给出的解决方案是最好的之一。谢谢你的提示。我必须得到VARIABLE的价值,这正是我的解决方案。

+1

列表解析是t他是我可以想到的最pythonic的方式。另外,如果'VARIABLE'的'__bool__'评估为'False'呢? – inspectorG4dget

+0

列表解析也使用'for'循环。 – ForceBru

+0

列表解析!=总是最pythonic。实际上,一些列表理解完全不是pythonic。 – KronoS

回答

1

可以使用reducefunctools.reduce在Python3)如果整数非零

>>> x = [False, False, False, 10, False, False] 
>>> reduce(lambda i,j:i or j, x) 
10 

可以使用这里也发电机表达

>>> x = [False, False, False, 10, False, False] 
>>> (i for i in x if i!=False).next() 
10 

同时检查包first

>>> from first import first 
>>> first([False, False, False, 10, False, False]) 
10 
+0

减少'[False,0,False]'返回'False'不是0('reduce'在python3的'functools'中) – AChampion

+0

@AChampion更正了语句。稍后会添加其他技术 –