list comprehension创建列表列表

时间:2013-10-22 17:46:32

标签: python

实现这一目标的列表理解是什么:

a=[1,2,3,4,5]
b=[[x,False] for x in a]

会给,

[[1,False],[2,False],[3,False],[4,False],[5,False]]

如何在列表中的某个数字中获得True?我需要这样的东西:

[[1,False],[2,False],[3,False],[4,True],[5,False]]

我的随机播放并没有解决问题。

4 个答案:

答案 0 :(得分:5)

使用if-else条件:

>>> a = [1,2,3,4,5]
>>> b = [[x, True if x == 4 else False] for x in a]
>>> b
[[1, False], [2, False], [3, False], [4, True], [5, False]]

或只是:

>>> b = [[x, x == 4] for x in a]

答案 1 :(得分:2)

>>> a = [1, 2, 3, 4, 5]
>>> b = [[x, x==4] for x in a]
>>> b
[[1, False], [2, False], [3, False], [4, True], [5, False]]
>>>

如果x等于4,则利用x==4将返回True的事实;否则,它将返回False

答案 2 :(得分:2)

也许这个?

b=[[x, x==4] for x in a]

答案 3 :(得分:1)

使用ternary operator根据条件选择不同的值:

conditional_expression ::=  or_test ["if" or_test "else" expression]

示例:

>>> [[x,False if x%4 else True] for x in a]
[[1, False], [2, False], [3, False], [4, True], [5, False]]