这个排序各位大佬能解释一下吗
就是最后面三行的排序我只看的懂一个reversed和sorted
能帮我解释一下sorted括号里面的东西是什么意思吗
越详细越好,麻烦各位了!感谢!
a = input("请输入水果名称:").split(',')
b = input('请输入水果价格:').split(',')
c = []
for i in b:
c.append(int(i))
d= dict(zip(a,c))
print(d)
e = input('请输入水果名字:')
print(f'{e}的价格为:{d}')
d = reversed(sorted(d.items(),key= lambda x:x))
for i in d:
print(f'{i}\t的价格:{i}')
sorted 是进行升序排序,第一个参数是需要排序的序列,第二个参数是按那种规则进行排序的函数
第二个参数中 lambda 是定义匿名函数的功能,这里 lambda x:x 相当于:
def key(x):
return x
是将前一个序列元素带入这个匿名函数中,得到函数返回值,按照返回值在进行大小排序的作用
本帖最后由 阿奇_o 于 2021-5-21 21:30 编辑
In : sorted?
Signature: sorted(iterable, /, *, key=None, reverse=False)
Docstring:
Return a new list containing all items from the iterable in ascending order.
A custom key function can be supplied to customize the sort order, and the
reverse flag can be set to request the result in descending order.
Type: builtin_function_or_method
In : d = {'peach': 4, 'apple': 5, 'lychee': 10}
In : d
Out: {'peach': 4, 'apple': 5, 'lychee': 10}
In : sorted(d.items())
Out: [('apple', 5), ('lychee', 10), ('peach', 4)]#sorted默认是按字典的key的字母升序排,在这里就是按水果的名称来排
In : sorted(d.items(), key=lambda item: item)# 用参数key=..意思是 你可以指定按什么来排,这里即 比较 每个item的item的大小,即按价格排(升序)。
# 关于lambda匿名函数,简单理解就是:lambda 输入什么 : 输出什么
Out: [('peach', 4), ('apple', 5), ('lychee', 10)]
In : sorted(d.items(), key=lambda item: item, reverse=True)# 按价格降序排
Out: [('lychee', 10), ('apple', 5), ('peach', 4)]
页:
[1]