这是我的元组元组:
(('dlazarov',), ('ant1',))
我想把它变成这个:
['dlazarov', 'ant1']
我试图用这个:
userdata = (('dlazarov',), ('ant1',))
userdata = map(list, userdata)
userdata = sum(userdata, [])
但这似乎不起作用。
没关系,我最后有一个错字。
另外 - 问题,如果你们想要回答它 - 在列表,itertools等知识上获得更好的最佳方法。我一直使用我熟悉的低效解决方法,但这些方法效率很低,而且时间也很长耗时。地狱,有一半的时间,我必须使用字符串和拆分将事物变成一个列表。
答案 0 :(得分:2)
您可以使用列表理解:
>>> userdata = (('dlazarov',), ('ant1',))
>>> [x[0] for x in userdata]
['dlazarov', 'ant1']
答案 1 :(得分:2)
该操作称为“展平”。
您可以使用itertools.chain.from_iterable来处理可迭代迭代的常见情况(在您的情况下,是元组的元组):
>>> from itertools import chain
>>> tot = (('dlazarov',), ('ant1',))
>>> list(chain.from_iterable(tot))
['dlazarov', 'ant1']
答案 2 :(得分:1)
你的方式似乎有效,但这是另一种方法:
from itertools import chain
list(chain(*userdata))
这是这里的食谱之一:http://docs.python.org/library/itertools.html#recipes
答案 3 :(得分:0)
当然,还有迭代方式:
mytuple = (('dlazarov',), ('ant1',))
mylist = []
for t in mytuple:
mylist.append(t[0])