列表排序并返回索引_Python编程必备——列表实现

列表(可索引的对象,索引是最快的)的操作,最多应用的是append(增,会涉及到开辟空间,可能会有GC的操作)和pop(删,什么都不写,弹出最后一个,或者写索引)

sort是对本身进行修改(就地修改),返回None

list.sort数字和字符串可以混合排序:

3fb5bfb3b2b1810ee0a99a7bcd99d31d.png
key指代的是按照key类型转换,进行比较

类似于:

1ce26e517f62d66af888952947623047.png

只要是可迭代对象都可以用sorted(指向修改),内部进行了copy ,操作副本,返回副本(原有list.copy)。

sorted(itrearble, cmp=None, key=None, reverse=False),返回list(新的!)

dd2adc0f878503dfbfd00eb3f6768d5b.png
立即返回一个新的列表

=号后面是默认值 默认是升序排序的, 如果想让结果降序排列,用reverse=True。最后会将排序的结果放到一个新的列表中, 而不是对iterable本身进行修改。

sorted 和list.sort 都接受key, reverse定制。但是区别是。list.sort()是列表中的方法,只能用于列表。而sorted可以用于任何可迭代的对象。list.sort()是在原序列上进行修改,不会产生新的序列。所以如果你不需要旧的序列,可以选择list.sort()。 sorted() 会返回一个新的序列。旧的对象依然存在。

如果你有一个字典,键是正负都有的只有一个小数点的数字字符串, 你想按数字从小到大排列键,首先把键列表转化为浮点型。对浮点型数据用sorted排序,然后再转化为只有一个小数点的数字字符串:

for i in ['%.1f'%k for k in sorted(float(j) for j in fb_RA_11.keys())]:

对列表序列使用+和*

如果你熟悉字符串拼接的话,*,+一定经常使用,对于列表也是可以使用+和*的,对一个对象复制几份在拼接起来。一次性开辟,采用*乘法扩展list效率更高,append方式一次次加效率比较低。(列表索引操作效率较好)

ac9ecbc8f8fa096ec4a915669d96915b.png

错误示范:

如果你想使用mylist = [ [] ] * 3 初始化,得到的一个包含三个列表的列表对象,就像这样mylist [[], [], []],中确实包含三个对象,但是其实你的列表中的三个元素都是对同一个列表对象的引用,并且都指向同一个列表

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值