码迷,mamicode.com
首页 > 编程语言 > 详细

python循环修改列表注意事项

时间:2017-11-10 20:12:58      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:[记录]python循环修改列表注意事

python循环修改列表注意事项


python循环列表且需要修改列表元素时,需注意不能边循环列表,边修改列表,否则会导致莫名奇妙的结果错误。


以简单的冒泡排序的一次排序为例

将列表[12, 3, 15, 7, 45, 33, 9, 76, 40, 56]使用冒泡算法按照从小到大排序。(仅写一次排序过程,即找到最大的放到最后)

如果写为:

src_list = [12, 3, 15, 7, 45, 33, 9, 76, 40, 56]
for (index, value) in enumerate(src_list[:-1]):    #最后一个元素不用循环
	if value > src_list[index+1]:
		tmp = value
		src_list[index] = src_list[index+1]
		src_list[index+1] = tmp
print(src_list)

 以下为上面代码的运行结果:

[3, 12, 7, 15, 33, 9, 33, 40, 76, 56]

可以发现元素33变为两次,元素45没了。


正确的操作方法为:用另外的方法替换循环列表这个操作,只修改列表。如:

src_list = [12, 3, 15, 7, 45, 33, 9, 76, 40, 56]
for index in xrange(len(src_list)-1):  #最后一个元素不用循环 
	if src_list[index] > src_list[index+1]:
		tmp = src_list[index]
		src_list[index] = src_list[index+1]
		src_list[index+1] = tmp
print(src_list)

通过循环一个迭代器来代替循环列表,同时达到可以依次访问列表元素的目的,这样再修改列表元素就不会出错了!技术分享

python循环修改列表注意事项

标签:[记录]python循环修改列表注意事

原文地址:http://netbeacon.blog.51cto.com/4101145/1980742

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!