从元组列表中解压元组

问题描述 投票:0回答:3

我想从元组列表中解压变量。我做了一些尝试,但无法找到解决方案。

这是要点列表。我想在子列表的每次迭代期间解压

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]
python tuples
3个回答
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)

0
投票

我将 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)

0
投票

你需要使用枚举:

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)
© www.soinside.com 2019 - 2024. All rights reserved.