什麼是列表解析來實現這一名單:列表解析創建列表
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]]
我隨機播放還沒有解決的問題。
什麼是列表解析來實現這一名單:列表解析創建列表
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]]
我隨機播放還沒有解決的問題。
使用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]
使用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]]
你的榜樣會更好「[[X,X%4 == 0]×10 9]」 –
@UdoKlein IMO的問題更多的是如何在該列表中添加的理解情況。所以,我試圖展示這一點。 –
當然。但是,您還可以通過三元運算符將布爾值TRUE設置爲TRUE,將FALSE設置爲FALSE。恕我直言,這是不好的做法。 –
>>> 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
將返回True
如果x等於4;否則,將返回False
。
也許這樣?
b=[[x, x==4] for x in a]
爲什麼不只是'[[x,x!= 4] for x in a]'? – val
@ValentinCLEMENT是剛剛編輯。 :) –
@ValentinCLEMENT,即'=='不''='。 –