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

列表的遍历:

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

执行结果:

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

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

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

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

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

列表排序

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

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

建新列表排序:

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

a = [20,10,30,40]
b = sorted(a)           #默认升序排列
print(id(a))            #执行结果:2125432443400
print(id(b))            #执行结果:2125432443912
print(a)                #执行结果:[20, 10, 30, 40]
print(b)                #执行结果:[10, 20, 30, 40]
a.sort(reverse=True)    #降序
print(a)                #执行结果:[40, 30, 20, 10]
print(sorted(a,reverse=True))   #降序,执行结果:[40, 30, 20, 10]

reversed() 返回迭代器

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

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

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

max 和 min

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

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

sum

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

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

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bug.ink

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值