列表、字典的排序sort,sorted()

学习python核心技术与实战时,在第10讲中,讲师留下了一个问题:
在这里插入图片描述

在解决这个问题之前,先解决如下问题:
1)列表的正序与倒序
2)找到列表中最大值,并输出
3)字典按值进行正序与倒序
4)找到字典中值最大的,并输出key跟value(键值对)
5)字典转换为列表

# 列表排序
l = [2, 5, 7, 3, 9, 1]
# 顺序
l.sort()
print(l)

# 倒序
ll = sorted(l, reverse=True)
print(ll)
# 通过倒序sorted()后,获取列表第一个值,则为最大值
print(ll[0])

# 冒泡法找到最大值
l2 = [2, 5, 7, 3, 9, 1]
for i in range(0, len(l2)):
    if l2[i] > l2[0]:
        l2[0] = l2[i]
print(l2[0])

# 字典按value来倒序排列
d = {'mike': 10, 'lucy': 2, 'ben': 30}
ddd = sorted(d.items(), key=lambda x: x[1], reverse=True)
print(ddd)
# 未知如何获取字典中的第一个键值对?????
key1 = list(d.keys())
value1 = list(d.values())
zip(key1[0:1], value1[0:1])
print("以上")
# 字典key转换为列表
key = list(d.keys())
print(key)
# 字典value转换为列表
value = list(d.values())
print(value)

拓展:
1、元组、列表、字典的区别

1、列表list:有序,可变。

2、元组tuple:有序,不可变。

3、字典dict:无序,字典的key是不可变的,值是可变的;在python中字符串,数字,元组都是不可变的对象。

4、序列:列表,元组和字符串都序列;即成员有序排列,可以通过下标访问,可以进行切片操作。字符串(普通字符串和unicode字符串)

5、集合:没有顺序的简单对象的聚集。可以检查成员是否存在,是否是另一个集合的子集,得到两个集合的交集等等

6、复制一个列表或者类似的序列或者其他复杂对象,那么必须使用切片操作符来去的拷贝。当你创建一个对象并将它赋值给一个变量的时候,这个变量仅仅引用那个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定。

2、sort()与sorted()

sort()与sorted()的不同在于,sort是在原位重新排列列表,而sorted()是产生一个新的列表。
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
当列表由list(或者tuple)组成时,默认情况下,sort和sorted都会根据list[0](或者tuple[0])作为排序的key,进行排序。
参数:
基于key函数
list1.sort(key=lambda x:x[2])
sorted(list1, key=lambda x:x[2])
基于reverse函数
reverse=False为升序排序(默认);reverse=True为降序排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值