shubiao05 发表于 2024-6-12 11:22

python列表的小知识点

看下面的源码,你知道输出结果是什么吗?
d =
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 13:38
删了135留了24

对的!{:1_921:}

不错不错,一起交流, 一起学习!

物理学四大神兽 发表于 2024-6-12 14:09

135 【24】

无奈的我0000 发表于 2024-6-12 14:10

set1 =
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发生了变化
d =
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只剩
但是下一个循环时index从0变成1,i也变成了3。

如果需要删列表中的数据,最好是从尾部向前循环删除。
或者直接新建一列表保存需要的数据。

ruoxijun 发表于 2024-6-13 12:04

提醒大家要批量更改数组(列表)数据应该使用 map、filter 等方法,不要直接去修改源数组
页: [1]
查看完整版本: python列表的小知识点