来看看 发表于 2018-8-13 10:03:20

python循环修改列表注意事项

  python循环修改列表注意事项
  python循环列表且需要修改列表元素时,需注意不能边循环列表,边修改列表,否则会导致莫名奇妙的结果错误。
  以简单的冒泡排序的一次排序为例
  将列表使用冒泡算法按照从小到大排序。(仅写一次排序过程,即找到最大的放到最后)
  如果写为:
src_list =   
for (index, value) in enumerate(src_list[:-1]):    #最后一个元素不用循环
  if value > src_list:
  tmp = value
  src_list = src_list
  src_list = tmp
  
print(src_list)
  以下为上面代码的运行结果:
  
  可以发现元素33变为两次,元素45没了。
  正确的操作方法为:用另外的方法替换循环列表这个操作,只修改列表。如:
src_list =   
for index in xrange(len(src_list)-1):#最后一个元素不用循环
  if src_list > src_list:
  tmp = src_list
  src_list = src_list
  src_list = tmp
  
print(src_list)
  通过循环一个迭代器来代替循环列表,同时达到可以依次访问列表元素的目的,这样再修改列表元素就不会出错了!
页: [1]
查看完整版本: python循环修改列表注意事项