将字符串拆分为元组列表

时间:2010-05-25 20:32:31

标签: python

如果我有一个字符串:

"user1:type1,user2:type2,user3:type3" 

我希望将其转换为如此的元组列表:

[('user1','type1'),('user2','type2'),('user3','type3')]

我该怎么做呢?我对python很新,但在文档中找不到一个很好的例子来做这件事。

谢谢!

5 个答案:

答案 0 :(得分:11)

>>> s = "user1:type1,user2:type2,user3:type3"
>>> [tuple(x.split(':')) for x in s.split(',')]
[('user1', 'type1'), ('user2', 'type2'), ('user3', 'type3')]

答案 1 :(得分:4)

最干净的方法是使用列表理解进行两次拆分:

str = "user1:type1,user2:type2,user3:type3"
res = [tuple(x.split(":")) for x in str.split(",")]

答案 2 :(得分:3)

>>> s = "user1:type1,user2:type2,user3:type3"
>>> l = [tuple(user.split(":")) for user in s.split(",")]
>>> l
[('user1', 'type1'), ('user2', 'type2'), ('user3', 'type3')]
>>>

:)

答案 3 :(得分:3)

如果你想在没有for循环的情况下这样做,你可以使用map和lambda:

map(lambda x: tuple(x.split(":")), yourString.split(","))

答案 4 :(得分:2)

使用split功能两次。

试试这个例子:

 s = "user1:type1,user2:type2,user3:type3"
 print [i.split(':') for i in s.split(',')]