A = [[(1,2,0),(3,4,0),(5,6,0)],[(7,8,1),(9,10,1),(11,12,1)],[(13,14,0),(15,16,0),(17,18,0)]]
我在尝试对给定子数组中每个元组的第三个元素求和,然后对其应用某些条件时遇到问题。i、 e.上述输出应为:
B = ['X',(7,8,9,19,11,12),'X']
这是我目前正在做的。请注意,元组的数量会有所不同,但每个元组中的元素数量是恒定的。你知道吗
i = 0
while i < len(A):
if sum([X[2] for X in A[i]]) == 0:
B.append('X')
else:
arr = [x[0:2] for x in A[i]]
B.append(list(itertools.chain.from_iterable(arr)))
i = i+1
我所关注的关于多个语句的具体问题已经解决,其形式如下:
A = [[(1,2,0),(3,4,0),(4,5,0)],[(6,7,1),(8,9,1)],[(10,11,0)]]
B = ['X' if not sum(t[2] for t in sub) and len(sub) >= 2 else tuple(itertools.chain.from_iterable(t[:2] for t in sub)) for sub in A]
print B
['X', (6, 7, 8, 9), (10, 11)]
您可以使用列表:
演示:
或者,如果您真的还想使用
itertools.chain()
:同样,作为演示:
如果只想将每个子列表中的前两个元组用于输出,则需要明确说明:
编辑出于某种原因,你现在显然不想要前两个。其余的仍然存在:
更一般地说,这里的列表理解会更简洁:
这给了我你想要的结果:
相关问题 更多 >
编程相关推荐