Skip to main content
 首页 » 编程设计

python之从两个for循环python获取x,y值

2025年05月04日12jackei

我正在尝试从两个 for 循环中追加数字以生成一些元组并将它们添加到列表中。

li = [] 
for x in range(1,10): 
    for y in range(1,10): 
        li.append((x,y*2)) 
print(li) 

我明白了

[(1, 2), (1, 4), (1, 6), (1, 8), (1, 10), (1, 12), (1, 14), (1, 16), (1, 18), (2, 2), (2, 4), (2, 6), (2, 8), (2, 10), (2, 12), (2, 14), (2, 16), (2, 18), (3, 2), (3, 4), (3, 6), (3, 8), (3, 10), (3, 12), (3, 14), (3, 16), (3, 18), (4, 2), (4, 4), (4, 6), (4, 8), (4, 10), (4, 12), (4, 14), (4, 16), (4, 18), (5, 2), (5, 4), (5, 6), (5, 8), (5, 10), (5, 12), (5, 14), (5, 16), (5, 18), (6, 2), (6, 4), (6, 6), (6, 8), (6, 10), (6, 12), (6, 14), (6, 16), (6, 18), (7, 2), (7, 4), (7, 6), (7, 8), (7, 10), (7, 12), (7, 14), (7, 16), (7, 18), (8, 2), (8, 4), (8, 6), (8, 8), (8, 10), (8, 12), (8, 14), (8, 16), (8, 18), (9, 2), (9, 4), (9, 6), (9, 8), (9, 10), (9, 12), (9, 14), (9, 16), (9, 18)] 

但它应该只有一个 x 每个 y 组合。我该如何解决这个问题?

请您参考如下方法:

使用列表理解:

>>> [(x, x**2) for x in range(1, 10)] 
[(1, 1), (2, 4), (3, 9), (4, 16), (5, 25), (6, 36), (7, 49), (8, 64), (9, 81)] 

使用 for 循环:

>>> li = [] 
>>> for x in range(1, 10): 
...     li.append((x, x**2)) 
...  
>>> li 
[(1, 1), (2, 4), (3, 9), (4, 16), (5, 25), (6, 36), (7, 49), (8, 64), (9, 81)]