将单元素元组列表转换为元素列表

2024-09-29 19:24:00 发布

您现在位置:Python中文网/ 问答频道 /正文

Possible Duplicate:
Convert list of tuples to list?

我有一张这样的单子

[('Knightriders',), ('The Black Knight',), ('Fly by Knight',), ('An Arabian Knight',), ('A Bold, Bad Knight',)...]

我想把它转换成:

^{pr2}$

实现这一目标最省时的方法是什么?在


Tags: ofthetoanconvertbylist单子
1条回答
网友
1楼 · 发布于 2024-09-29 19:24:00

最简单的方法是使用列表理解:

In [126]: lis=[('Knightriders',), ('The Black Knight',), ('Fly by Knight',), ('An Arabian Knight',), ('A Bold, Bad Knight',)]

In [127]: [x[0] for x in lis]
Out[127]: 
['Knightriders',
 'The Black Knight',
 'Fly by Knight',
 'An Arabian Knight',
 'A Bold, Bad Knight']

或使用itemgetter

^{pr2}$

或者:

In [131]: [next(x) for x in map(iter,lis)]
Out[131]: 
['Knightriders',
 'The Black Knight',
 'Fly by Knight',
 'An Arabian Knight',
 'A Bold, Bad Knight']

或者按照@DSM的建议使用zip()

In [132]: zip(*lis)[0]
Out[132]: 
('Knightriders',
 'The Black Knight',
 'Fly by Knight',
 'An Arabian Knight',
 'A Bold, Bad Knight')

或使用ast.literal_eval(最不推荐的解决方案或永远不要尝试此方法):

In [148]: from ast import literal_eval

In [149]: literal_eval(repr(lis).replace(",)",")"))
Out[149]: 
['Knightriders',
 'The Black Knight',
 'Fly by Knight',
 'An Arabian Knight',
 'A Bold, Bad Knight']

相关问题 更多 >

    热门问题