a = [(1, "X"), (2, 'Y')]
b = [(1, 'Z'), (2, 'K')]
c = [t[1] for t in b]
d = []
i=0
for element in a:
d.append(element + (c[i],))
i += 1
print d
给我我想要的输出 [(1,'X','Z'),(2,'Y','K')]
然而,这似乎是一种不必要的长途跋涉。是否有更有效的方法(在代码方面)来实现相同的结果?
答案 0 :(得分:0)
数据结构似乎有点不寻常,但这是获得结果的一种方法。
a = [(1, "X"), (2, 'Y')]
b = [(1, 'Z'), (2, 'K')]
a1, a2 = zip(*a) # -> a1 = (1, 2); a2 = ('X', 'Y')
_, b2 = zip(*b) # -> b2 = ('Z', 'K')
d = zip(a1, a2, b2)
a1
,a2
和b2
只是必要的,因为a
和b
本身相当繁琐。
如果a
和b
中的元组始终从1开始按顺序编号,那么为什么要使用索引?
a = ('X', 'Y')
b = ('Z', 'K')
d = zip(a, b) # -> [('X', 'Z'), ('Y', 'K')]
如果您需要索引,可以随时enumerate()
:
for i, e in enumerate(d, 1):
print i, e