python – 将列表的每个元素转换为元组

我将列表的每个元素转换为元组,如下所示:

l = ['abc','xyz','test']

转换为元组列表:

newl = [('abc',),('xyz',),('test',)]

实际上我用这样的键有词,所以为了搜索目的,我需要有这些.

解决方法:

您可以使用list comprehension

>>> l = ['abc','xyz','test']
>>> [(x,) for x in l]
[('abc',), ('xyz',), ('test',)]
>>>

或者,如果您使用的是Python 2.x,则可以使用zip

>>> # Python 2.x interpreter
>>> l = ['abc','xyz','test']
>>> zip(l)
[('abc',), ('xyz',), ('test',)]
>>>

但是,之前的解决方案在Python 3.x中不起作用,因为zip现在返回一个zip对象.相反,您需要通过将结果放在list中来明确地将结果作为列表:

>>> # Python 3.x interpreter
>>> l = ['abc','xyz','test']
>>> zip(l)
<zip object at 0x020A3170>
>>> list(zip(l))
[('abc',), ('xyz',), ('test',)]
>>>

我个人更喜欢列表理解而不是最后一个解决方案.

上一篇:python – 检查元组的列表,其中元组的第一个元素由定义的字符串指定


下一篇:python – 获取“’元组’对象的列表的变量元组不支持项目分配”