我有以下代码来创建一个包含多个整数对的元组:
但是如果元组的最后一个元素是"0"(例如(0, 0)或(2, 0)),我需要删除该元组。因此,新的列表应该像这样:
我实际上通过以下代码实现了这个目标,但我觉得这不是正确的方法,我不知道。
如何使用
谢谢。
iterable = (
tuple(zip([0, 1, 2], _))
for _ in product(range(9), repeat=3)
)
next(iterable) # First element is not needed
print(list(iterable))
# This code produces: [((0, 0), (1, 0), (2, 1)), ... , ((0, 8), (1, 8), (2, 8))]
但是如果元组的最后一个元素是"0"(例如(0, 0)或(2, 0)),我需要删除该元组。因此,新的列表应该像这样:
[((2, 1),), ... , ((1, 2), (2, 7)), ((1, 2), (2, 8)), ... , ((0, 8), (1, 8), (2, 8))]
我实际上通过以下代码实现了这个目标,但我觉得这不是正确的方法,我不知道。
x = ()
for i in iterable:
y = ()
for j in i:
if j[-1] != 0:
y += (j,)
x += (y,)
print(list(x))
如何使用
itertools
模块并在一行内完成这个任务?如果需要的话,我可以修改问题顶部的代码,以便在一行内创建所需的列表。谢谢。