的Python:从整数列表中提取一个值,并列出

问题描述:

我有一个列表如下:的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]] 
+0

谢谢,成功了! –

+2

@Levon它与'map(lambda x:x [0] if isinstance(x,list)和len(x)== 1 else x,a)'是一样的。 –

+1

@Not_a_Golfer我知道(和列表理解:-),这个解决方案是优雅的,所以我upvote。我只是认为,如果答案不仅仅包含简短的解决方案代码,以防某些读者不太熟悉解决问题的更多pythonic方法,那么答案会更有用。我发现答案现在以有用的方式得到了增强。都很好。 – Levon