0

实现此目的的列表理解是什么:

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

会给,

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

我怎样才能让列表中的某个数字为真?我需要这样的东西:

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

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

4

4 回答 4

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]
于 2013-10-22T17:48:13.333 回答
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 等于 4x==4将返回的事实;True否则,它将返回False.

于 2013-10-22T17:48:27.457 回答
2

也许这个?

b=[[x, x==4] for x in a]
于 2013-10-22T17:49:46.900 回答
1

使用三元运算符根据条件选择不同的值:

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]]
于 2013-10-22T17:48:04.143 回答