在列表中查找唯一元素
Find a unique element in a list
我在 Python 中找到了很多关于列表的文档。但是我没有找到以下情况的答案:
我有一个这样的列表:[False, False, False, VARIABLE, False, False]
。
是否存在一种无需对每个元素进行 for 循环并使用列表推导式即可获取 VARIABLE 值(整数)的方法?一种 "which",表示:列表中的 Select 项不是 False。
重要的一点,变量在列表中总是唯一的。列表中不可能有两个 VARIABLE。
编辑
就我而言,@AChampion 给出的解决方案是最好的。谢谢你的提示。我必须获得 VARIABLE 的值,这正是我对您的解决方案的看法。
您可以在 Python3 中使用 reduce
(functools.reduce
如果整数不为零
>>> 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
我在 Python 中找到了很多关于列表的文档。但是我没有找到以下情况的答案:
我有一个这样的列表:[False, False, False, VARIABLE, False, False]
。
是否存在一种无需对每个元素进行 for 循环并使用列表推导式即可获取 VARIABLE 值(整数)的方法?一种 "which",表示:列表中的 Select 项不是 False。
重要的一点,变量在列表中总是唯一的。列表中不可能有两个 VARIABLE。
编辑
就我而言,@AChampion 给出的解决方案是最好的。谢谢你的提示。我必须获得 VARIABLE 的值,这正是我对您的解决方案的看法。
您可以在 Python3 中使用 reduce
(functools.reduce
如果整数不为零
>>> 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