0
我有一個列表如下:的Python:從整數列表中提取一個值,並列出
a = [3, 4, [1], 8, 9, [3, 4, 5]]
我想,以確定當這些特性列表只有一個值,然後將其解壓到主列表:
預計輸出
a = [3, 4, 1, 8, 9, [3, 4, 5]]
我知道如何在一個列表組成的列表中提取值,但在這種情況下,我不知道如何
我有一個列表如下:的Python:從整數列表中提取一個值,並列出
a = [3, 4, [1], 8, 9, [3, 4, 5]]
我想,以確定當這些特性列表只有一個值,然後將其解壓到主列表:
預計輸出
a = [3, 4, 1, 8, 9, [3, 4, 5]]
我知道如何在一個列表組成的列表中提取值,但在這種情況下,我不知道如何
我的解決辦法是簡單明瞭:
result = []
for x in a:
if isinstance(x, list) and len(x) == 1: # check item type and length
result.append(x[0])
else:
result.append(x)
還是相同的,但一個行
>>> [x[0] if isinstance(x, list) and len(x) == 1 else x for x in a]
[3, 4, 1, 8, 9, [3, 4, 5]]
謝謝,成功了! –
@Levon它與'map(lambda x:x [0] if isinstance(x,list)和len(x)== 1 else x,a)'是一樣的。 –
@Not_a_Golfer我知道(和列表理解:-),這個解決方案是優雅的,所以我upvote。我只是認爲,如果答案不僅僅包含簡短的解決方案代碼,以防某些讀者不太熟悉解決問題的更多pythonic方法,那麼答案會更有用。我發現答案現在以有用的方式得到了增強。都很好。 – Levon