我想从元组列表中解压变量。我做了一些尝试,但无法找到解决方案。
这是要点列表。我想在子列表的每次迭代期间解压
p1
、p2
、p3
、p4
中的每个变量,以便在每次迭代期间为每个变量分配值。
例如在第一次迭代中,我期望:
p1=(0,0)
p2=(1,0)
p3=(2,0)
p4=(0,1)
在下一次迭代中:
p1=(0,0)
p2=(1,0)
p3=(2,0)
p4=(2,1)
points=[[(0, 0), (1, 0), (2, 0), (0, 1)],[(0, 0), (1, 0), (2, 0), (2, 1)]]
for i in points:
for j in i:
p1=j[0],j[1]
p2=j[0],j[1]
p3=j[0],j[1]
p4=j[0],j[1]
points
的每个元素都是可以解包的元组列表,如下所示:
for p1, p2, p3, p4 in points:
print(p1, p2, p3, p4)
输出:
(0, 0) (1, 0) (2, 0) (0, 1)
(0, 0) (1, 0) (2, 0) (2, 1)
我将 sub 更正为点,并修复了解包 p2 时超出范围的索引。
points=[[(0, 0), (1, 0), (2, 0), (0, 1)],[(0, 0), (1, 0), (2, 0), (2, 1)]]
for i in points:
for j in i:
p1=j[0],j[1]
p2=j[0],j[1]
p3=j[0],j[1]
p4=j[0],j[1]
print (p1,p2,p3,p4)
你需要使用枚举:
points=[[(0, 0), (1, 0), (2, 0), (0, 1)],[(0, 0), (1, 0), (2, 0), (2, 1)]]
for i in points:
for index, j in enumerate(i):
print(f"P{index +1 }:{j}")
结果:
P1:(0, 0)
P2:(1, 0)
P3:(2, 0)
P4:(0, 1)
P1:(0, 0)
P2:(1, 0)
P3:(2, 0)
P4:(2, 1)