吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 578|回复: 9
收起左侧

[讨论] python列表的小知识点

[复制链接]
shubiao05 发表于 2024-6-12 11:22
看下面的源码,你知道输出结果是什么吗?
[Python] 纯文本查看 复制代码
d = [1,2,3,4,5]
for i in d:  
	print(i)
	d.remove(i)
print(d)


猜一猜,对初学者而言,很涨知识。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

苏紫方璇 发表于 2024-6-12 13:38
删了135留了24
 楼主| shubiao05 发表于 2024-6-12 14:08
物理学四大神兽 发表于 2024-6-12 14:09
无奈的我0000 发表于 2024-6-12 14:10
set1 = [1, 2, 3, 4, 5]
set2 = set1
for i in set2:
    set1.remove(i)
    print("i :", i)
    print("set1: ", set1)
    print("set2: ", set2)

漏斗原理,没循环一次漏一个数,总共漏了两个数
kenxy 发表于 2024-6-12 14:14
每一次循环的时候,数据d发生了变化
[Python] 纯文本查看 复制代码
d = [1,2,3,4,5]
print(d)
for i,v in enumerate(d):
    print("打印d里面的第"+str(i)+"位元素")
    print(v)
    print("删除第"+str(i)+"位元素")
    d.remove(v)
    print("数组d变成了"+str(d))

print(d)
wapjsx 发表于 2024-6-12 15:30
学习了!!!

我记得在帮助文档里 贵叔 提到过的,不建议这样处理的。
anning666 发表于 2024-6-12 16:19
俺一眼看下去,第一印象就最后剩一个空的list,评论看下去...原来如此...程序果然马虎不得~~~~
gufengaoyue 发表于 2024-6-12 17:08
for...in...是按index走的。
第1个循环后d只剩[2,3,4,5]
但是下一个循环时index从0变成1,i也变成了3。

如果需要删列表中的数据,最好是从尾部向前循环删除。
或者直接新建一列表保存需要的数据。
ruoxijun 发表于 2024-6-13 12:04
提醒大家要批量更改数组(列表)数据应该使用 map、filter 等方法,不要直接去修改源数组
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-12 22:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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