鱼C论坛

 找回密码
 立即注册
查看: 1524|回复: 4

为什么在这个for循环中用append后v无法形成list?

[复制链接]
发表于 2023-10-30 16:07:10 | 显示全部楼层 |阅读模式

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

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

x
为什么在这个for循环中用append后v无法形成list?
data明明是一个列表了,但是就是无法弄出来
x = [2099 ,'daz','sag','saf',['zg21' , 'zgxj', 'etu']]
t = []
for i in x :
    t.append(i)
y = t[4][1]
print(y)
我自己又尝试了一下这个例子但是这个例子又能完成,形成t的列表
微信图片_20231030160338.png

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-30 16:07:21 | 显示全部楼层
问题出在你对列表的理解上。在这个例子中,你的列表x中的最后一个元素是一个嵌套列表,即['zg21', 'zgxj', 'etu']。当你执行t.append(i)时,你将x中的每个元素都添加到了t中。但是,当你访问t[4][1]时,你实际上是在访问t列表中的第五个元素(列表是从0开始索引),然后再访问该元素中的第二个元素。由于x中的最后一个元素是一个嵌套列表,所以t[4]实际上是['zg21', 'zgxj', 'etu'],而不是'etu'。因此,你无法获得正确的结果。

如果你想要形成一个包含x中所有元素的列表,包括嵌套列表中的元素,你可以使用extend方法而不是append方法。extend方法将嵌套列表中的每个元素作为独立的元素添加到列表中。以下是修改后的代码:

x = [2099, 'daz', 'sag', 'saf', ['zg21', 'zgxj', 'etu']]
t = []
for i in x:
    t.extend(i)
y = t[4][1]
print(y)

现在,当你访问t[4][1]时,你将获得'etu'作为结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-30 16:26:21 | 显示全部楼层
isdkz 发表于 2023-10-30 16:07
问题出在你对列表的理解上。在这个例子中,你的列表x中的最后一个元素是一个嵌套列表,即['zg21', 'zgxj',  ...

感谢回答,其实我想问的是我那个图中的v为什么不能通过for形成完整列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-30 21:42:06 | 显示全部楼层
本帖最后由 lassiter 于 2023-10-30 21:51 编辑

我猜,你的这段程序报错在断点行,为啥会报错呢,因为在进行第一次循环的时候,v中只有一个元素,只有v[0],哪来的v[7]

根据你的程序一步步走下来,data已经是一个列表,然后你只需要判断data[7]==“stop”,如果是则建立字典item,将data[序号]赋予字典
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-15 20:03:39 | 显示全部楼层
lassiter 发表于 2023-10-30 21:42
我猜,你的这段程序报错在断点行,为啥会报错呢,因为在进行第一次循环的时候,v中只有一个元素,只有v[0] ...

谢谢谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 07:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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