实现这一目标的列表理解是什么:
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]]
我的随机播放并没有解决问题。
答案 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]]