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

标签 python

我正在尝试从两个 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)]

关于python - 从两个for循环python获取x,y值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53988880/

相关文章:

python - Python 3 的静态类属性

python - 如何快速测试多行?

python - 如何在pandas中处理这个逻辑

python - zeep - 禁用警告 "Forcing soap:address location to HTTPS"

python - 使用 pandas 使用 fips 代码获取县名

java - Spring 兼容 scrypt 密码与 python passlib

python - 如何使用pandas中的DataFrame在图表中的x轴上显示日期

Python:以另一列为条件的数据框中列表的逐元素平均值

python - 使 Flask block 过载?

python - 有没有办法在 Django 管理站点中显示(十六进制颜色)字段的颜色?