python - 坐标列表列表
问题描述
我是 Python 新手,正在努力完成一项我认为对于有经验的程序员来说非常简单的任务。
我正在尝试为不同的行创建坐标列表列表。例如:
list = [ [(x,y), (x,y), (x,y)], [第 2 行坐标], ....]
我有以下代码:
masterlist_x = list(range(-5,6))
oneline = []
data = []
numberoflines = list(range(2))
i = 1
for i in numberoflines:
slope = randint(-5,5)
y_int = randint(-10,10)
for element in masterlist_x:
oneline.append((element,slope * element + y_int))
data.append(oneline)
应该将坐标保存到一行(oneline)的变量的输出包含两行:
我知道这是外部循环机制的问题,但我不确定如何进行。
非常感谢任何和所有帮助。非常感谢!
解决方案
@khuynh 是对的,你只是oneline = []
在错误的地方,你把所有的坐标放在一行中。
此外,您的代码中有一些不必要的东西:
- 你不需要
list()
,range()
你可以直接用for
- 你也不需要声明
i
for thefor
,它自己做 - 那
i
实际上并没有使用,这很好。未使用变量的 Python 约定是_
固定版本:
from random import randint
masterlist_x = range(-5,6)
data = []
numberoflines = range(2)
for _ in numberoflines:
oneline = []
slope = randint(-5,5)
y_int = randint(-10,10)
for element in masterlist_x:
oneline.append((element,slope * element + y_int))
data.append(oneline)
print(data)
也可以在线运行它:https ://repl.it/repls/GreedyRuralProduct
我怀疑整个事情也可以用更少的代码来完成,并且以更简单的方式,作为列表理解..
更新:内部循环确实非常适合列表理解。也许外部也可以做成一个,整个事情可以有两个嵌套的列表推导,但我只是在尝试时感到困惑。但这很清楚:
from random import randint
masterlist_x = range(-5,6)
data = []
numberoflines = range(2)
for _ in numberoflines:
slope = randint(-5,5)
y_int = randint(-10,10)
oneline = [(element, slope * element + y_int)
for element in masterlist_x]
data.append(oneline)
print(data)
再次在 repl.it 上:https ://repl.it/repls/SoupyIllustriousApplicationsoftware
推荐阅读
- pgadmin-4 - 在 Manjaro 中启动 pgadmin4 时出现错误“无法为应用程序服务器提供午餐”
- scenekit - SceneKit:将 scn 文件保存到磁盘
- python - 如何在没有命令行参数“--noreload”的情况下停止 django autoreload
- mysql - 我正在尝试在 MySQL 中创建一个表,但出现以下错误:
- azure - 上传电子邮件附件时将元数据上传到 Blob
- reactjs - 兄弟组件中的值不同 React
- javascript - 在反应导航 v5 中,顶部标题未与底部选项卡一起显示
- r - 如何使用 R Plumber 将整数列表定义为参数
- arduino - 需要帮助来制作程序的循环序列
- c - gethostbyname() 和 getaddrinfo() 永远阻塞 (Linux)