在进行大量重新格式化后,我有以下lis
个元组:
[[(('A', 'X'), ('43,23', 'Y'), ('wepowe', 'd'))]]
我如何重新格式化为:
'A', '43,23', 'wepowe'
我试图:
[' '.join(map(str,lis[0][0])) for x in lis]
和
[' '.join(map(str,lis[0][:1])) for x in lis]
和
' '.join(map(str, lis))
但是,我没有得到所需的格式。哪种方法可以像上面那样重新格式化元组和列表?
答案 0 :(得分:6)
你可以像这样使用list comprehension
:
my_list = [(('A', 'X'), ('43,23', 'Y'), ('wepowe', 'd'))]
result = [item[0] for item in my_list[0]]
<强>输出:强>
>>> result
['A', '43,23', 'wepowe']
答案 1 :(得分:3)
您可以将zip
用作:
>>> my_list = [(('A', 'X'), ('43,23', 'Y'), ('wepowe', 'd'))]
>>> new_list , _ = zip(*my_list[0])
# ^ replace this with some variable in case you also want the
# elements at `1`st index of each tuple
new_list
保留的值为:
>>> new_list
('A', '43,23', 'wepowe')
答案 2 :(得分:2)
在你编写任何列表之前,comprehensions让我们使用2个for
循环遍历列表,例如:
tups = [(('A', 'X'), ('43,23', 'Y'), ('wepowe', 'd'))]
for item in tups:
for j in item:
print j[0]
现在,如果您看到我们正在寻找每个元组的第一个元素,我们可以将其转换为列表推导表达式,如下所示:
' '.join(str(j[0]) for item in tups for j in item)