鱼C论坛

 找回密码
 立即注册
查看: 1063|回复: 10

[已解决]列表和for in 循环

[复制链接]
发表于 2020-5-9 11:11:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大神们可以给小弟我解释解释标红的几个地方(for in 循环部分)是什么意思吗?我记得”列表[x]“这样的格式是提取列表里面的元素,可是”列表[x][y]"这样又是什么意思呢?   万分感谢!

#AutoTraceDraw.py
import turtle as t
t.title("自动轨迹绘制")
t.setup(800,600,0,0)
t.pencolor("red")
t.pensize(5)
#数据读取
datals=[]
f=open("data.txt")
for line in f:
    line = line.replace("\n","")
    datals.append(list(map(eval,line.split(","))))
f.close()
for i in range(len(datals)):
    t.pencolor(datals[i][3],datals[i][4],datals[i][5])
    t.fd(datals[i][0])
    if datals[i][1]:
        t.right(datals[i][2])
    else :
        t.left(datals[i][2])
最佳答案
2020-5-9 11:34:43
赤梦云 发表于 2020-5-9 11:29
len(datals)的值不是一个数字吗?那如果是这样的话,i 的值依次就是 1 2 3 ,比如datals[3],就成了datal ...

看了一下,你的数据应该是类似于
list=[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25]]
这样的结构。
list[1]就是[6, 7, 8, 9, 10]
list[1][3]就是9
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-9 11:14:15 | 显示全部楼层
你这个代码里面也没有列表[x][y]的取值形式呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-5-9 11:16:52 | 显示全部楼层
诶抱歉!!复制粘贴的时候出了点问题。
最后for in循环的代码如下:
for i in range(len(datals)):
    t.pencolor(datals[i][3],datals[i][4],datals[i][5])
    t.fd(datals[i][0])
    if datals[i][1]:
        t.right(datals[i][2])
    else :
        t.left(datals[i][2])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-9 11:19:19 | 显示全部楼层
赤梦云 发表于 2020-5-9 11:16
诶抱歉!!复制粘贴的时候出了点问题。
最后for in循环的代码如下:
for i in range(len(datals)):

就是访问列表里的列表的数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-9 11:21:25 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-9 11:19
就是访问列表里的列表的数据

我不是很懂为啥 要用 列表的长度 作为 range 呢orz
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-9 11:24:20 | 显示全部楼层
赤梦云 发表于 2020-5-9 11:21
我不是很懂为啥 要用 列表的长度 作为 range 呢orz

这样正好可以访问到所有元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-9 11:29:55 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-9 11:24
这样正好可以访问到所有元素

len(datals)的值不是一个数字吗?那如果是这样的话,i 的值依次就是 1 2 3 ,比如datals[i][3],就成了datals[1][3],datals[1][3]是什么意思呢?
您方便举一个实例给我看看吗,比如i=1的时候。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-9 11:34:43 | 显示全部楼层    本楼为最佳答案   
赤梦云 发表于 2020-5-9 11:29
len(datals)的值不是一个数字吗?那如果是这样的话,i 的值依次就是 1 2 3 ,比如datals[3],就成了datal ...

看了一下,你的数据应该是类似于
list=[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25]]
这样的结构。
list[1]就是[6, 7, 8, 9, 10]
list[1][3]就是9
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-5-9 16:29:28 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-9 11:34
看了一下,你的数据应该是类似于这样的结构。
list[1]就是[6, 7, 8, 9, 10]
list[1][3]就是9

方便再问您一下吗~
在上面的代码里,for in循环每次绘画的起点都是在(800,600,0,0) or 在上一笔画的终点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-9 16:32:22 | 显示全部楼层
赤梦云 发表于 2020-5-9 16:29
方便再问您一下吗~
在上面的代码里,for in循环每次绘画的起点都是在(800,600,0,0) or 在上一笔画 ...

这个……我不会turtle
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-5-9 16:33:37 | 显示全部楼层

哈哈哈哈好叭,还是谢谢你啦!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 05:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表