Chinaunix
标题:
遍历数组的问题
[打印本页]
作者:
blueskysee
时间:
2017-01-22 13:27
提示:
作者被禁止或删除 内容自动屏蔽
作者:
zl624867243
时间:
2017-01-22 14:02
a = ["xyzz","b","c","d"]
# print len(a)
for i in a:
# print i
if len(i) > 3:
print len(i)
# a.insert(3,i)
复制代码
作者:
zl624867243
时间:
2017-01-22 14:03
len(i) > 3 永远等于 true
作者:
zxy877298415
时间:
2017-01-22 14:07
回复
1#
blueskysee
>>> id(arr[:])
139704523241016
>>> id(arr)
139704523240944
第一个相当于从arr[:]里面遍历找len大于3的插入到arr中,第二个相当于自己操作自己,当等于3的时候insert到arr中,i的位置永远等于len=3了,所以死循环了。
作者:
blueskysee
时间:
2017-01-22 14:36
提示:
作者被禁止或删除 内容自动屏蔽
作者:
blueskysee
时间:
2017-01-22 14:38
提示:
作者被禁止或删除 内容自动屏蔽
作者:
seeLnd
时间:
2017-01-25 16:42
arr[:] 返回的是一个新列表,和arr是两个对象,互不影响
作者:
zl624867243
时间:
2017-02-06 13:49
回复
6#
blueskysee
楼上已经回答你了
作者:
zl624867243
时间:
2017-02-06 13:49
回复
6#
blueskysee
....
作者:
python爱好者
时间:
2017-02-16 12:23
for i in arr: <- 这个会出现循环insert
if len(i) > 3:
arr.insert(3,i)
print arr
这种是遍历边修改结构 ,所以有问题。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2