Python将字符串列表转换为元组列表

时间:2014-05-25 05:53:34

标签: python string list tuples

如何转换以下列表

['abc,cde,eg,ba', 'abc,cde,ba']

进入元组列表?

[('abc','cde','eg','ba'), ('abc','cde','ba')]

我尝试了什么

output = []

for item in my_list:
    a = "','".join((item.split(',')))
    output.append(a)

3 个答案:

答案 0 :(得分:2)

在你的循环中,你正在拆分字符串(它会给你一个列表),但是然后你用一个,加入它,它将返回给你相同的字符串:

 >>> 'a,b'.split(',')
 ['a', 'b']
 >>> ','.join('a,b'.split(','))
'a,b'

您可以将列表传递给内置的tuple()方法,从而将列表转换为元组。

将上述内容与列表推导(一种评估为列表的表达式)相结合,可以为您提供所需的内容:

>>> [tuple(i.split(',')) for i in ['abc,cde,eg,ba', 'abc,cde,ba']]
[('abc', 'cde', 'eg', 'ba'), ('abc', 'cde', 'ba')]

写作的简单方法是:

result = []
for i in ['abc,cde,eg,ba', 'abc,cde,ba']:
    result.append(tuple(i.split(',')))
print(result)

答案 1 :(得分:2)

t=['abc,cde,eg,ba', 'abc,cde,ba']

for i in t:
    print tuple(i.split(','))

答案 2 :(得分:1)

你可以拆分2个元素。这是我的代码

['abc,cde,eg,ba', 'abc,cde,ba']
a='abc,cde,eg,ba'
b='abc,cde,ba'
c=[]
c.append(tuple(a.split(',')))
c.append(tuple(b.split(',')))
print c