Python:从整数和列表列表中提取一个值

Edg*_*uay 0 python list

我有一个这样的列表:

a = [3, 4, [1], 8, 9, [3, 4, 5]]
Run Code Online (Sandbox Code Playgroud)

我想确定具有这些特征的列表何时只有一个值,然后将其提取到主列表:

预期产出

a = [3, 4, 1, 8, 9, [3, 4, 5]]
Run Code Online (Sandbox Code Playgroud)

我知道如何在列表组成的列表中提取值,但在这种情况下我不知道如何

San*_*4ez 7

我的解决方案简单明了:

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)
Run Code Online (Sandbox Code Playgroud)

或者相同但一行

>>> [x[0] if isinstance(x, list) and len(x) == 1 else x for x in a]
[3, 4, 1, 8, 9, [3, 4, 5]]
Run Code Online (Sandbox Code Playgroud)

  • @Levon它与:`map(lambda x:x [0] if isinstance(x,list)和len(x)== 1 else x,a)`相同. (2认同)