当前位置:   article > 正文

Python学习(16)|列表_遍历_排序_max_min_sum

Python学习(16)|列表_遍历_排序_max_min_sum

列表的遍历:

  1. a = [10,20,30,40]
  2. for obj in a: #obj 是临时变量名称,随意起名
  3. print(obj)

执行结果:

复制列表所有的元素到新列表对象:

  1. list1 = [30,40,50]
  2. list2 = list1 #只是将list2也指向了列表对象。也就是说list1和list2持有地址是相同的,列表对象本身的元素并没有复制
  3. print(id(list1)) #执行结果:1933292032520
  4. print(id(list2)) #执行结果:1933292032520

我们可以通过如下简单的方式实现列表元素内容的复制:

  1. list1 = [30,40,50]
  2. list2 = [] + list1 #生成了新列表对象
  3. print(id(list1)) #执行结果:2468481880584
  4. print(id(list2)) #执行结果:2468486757256

后面会学习copy模块,使用浅复制或深复制实现我们的复制操作。

列表排序

修改原列表,不建新列表的排序:

  1. import random #导入随机模块
  2. a = [20,10,30,40]
  3. print(a) #执行结果:[20, 10, 30, 40]
  4. a.sort() #默认是升序排列
  5. print(a) #执行结果:[10, 20, 30, 40]
  6. a.sort(reverse=True) #降序排列
  7. print(a) #执行结果:[40, 30, 20, 10]
  8. random.shuffle(a) #打乱顺序
  9. print(a) #执行结果:[10, 30, 20, 40]

建新列表排序:

可以通过内置函数 sorted() 进行排序,这个方法返回新列表,不对原列表做修改。

  1. a = [20,10,30,40]
  2. b = sorted(a) #默认升序排列
  3. print(id(a)) #执行结果:2125432443400
  4. print(id(b)) #执行结果:2125432443912
  5. print(a) #执行结果:[20, 10, 30, 40]
  6. print(b) #执行结果:[10, 20, 30, 40]
  7. a.sort(reverse=True) #降序
  8. print(a) #执行结果:[40, 30, 20, 10]
  9. print(sorted(a,reverse=True)) #降序,执行结果:[40, 30, 20, 10]

reversed() 返回迭代器

内置函数 reversed() 也支持进行逆序排列,与列表对象 reverse() 方法不同的是,内置函数 reversed() 不对原列表做任何修改,只返回一个逆序排列的迭代器对象。

打印输出 c 时发现提示:list_reverseiterator 。也就是一个迭代对象。

同时,使用 list(c) 进行输出,发现只能使用一次。第一次输出了元素第二次为空。那是因为迭代对象在第一次时已经遍历了结果,第二次不能再使用。

max 和 min

用于返回列表中的最大值和最小值

  1. a = [3,10,20,15,9]
  2. print(max(a)) #执行结果:20
  3. print(min(a)) #执行结果:3

sum

对数值型列表的所有元素进行求和操作,对非数值型列表运算则会报错。

  1. a = [3,10,20,15,9]
  2. print(sum(a)) #执行结果:57

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/113811
推荐阅读
相关标签
  

闽ICP备14008679号