Discuss / Python / 个人理解,欢迎指正

个人理解,欢迎指正

Topic source

1.排序是sorted函数的事情,它能够将调入的序列按默认规则排序。导入的函数key=name或key=score的作用是对要被排序的序列L的元素进行特定修饰。 2.sorted函数默认按照从小到大排序,如果要按照特定要求排序,则需要导入新函数,这个函数的目的是修改原来序列L中的元素类型,比如:若要按照绝对值大小排序,则调入abs函数,abs函数把序列L中的值都变成绝对值后,再进行排序。比如,如果按照不区分大小写字符排序,则调入lower或upper函数,将序列L中元素全部变成大写或小写后,形成一个新的list,然后sorted函数再对这个新的list进行排序。 3.因此,调入的函数是为了修饰序列L中的元素的,将它改变成特定的类型。这里,定义函数的目的就是把序列L中的每个tumple变成只取t[0]或t[1],然后序列L的元素就成了t[0]或t[1]的list,再根据大小排序。

请问下这个t[0].lower() 里的t[0]不是应该是L这个列表里的 L[0] ('Bob', 75)吗?

不好意思楼主 是我看错了

互相学习

还是不懂t[0] 和t[1]的含义???

岁与尔安

#6 Created at ... [Delete] [Delete and Lock User]

t=(a,b) t[0]=a t[1]=b

0和1就是下标

一叶染秋

#7 Created at ... [Delete] [Delete and Lock User]

这里的key我看还有一个特点就是,传入key中的元素都是前面变量中的依次每一个单位元素。 如果是 L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)] ,那key 过来的就是每一个L中的元素('Bob', 75)... 这就有了: def by_name(t): return t[0] L2 = sorted(L, key=by_name)

因为t就是L的每一个元素,('Bob', 75)...,相当于遍历了L 且再L2中的sorted方法里 key直接等于函数by_name,而且by_name方法本应该传入t参数,也不用传了,因为key直接依次传入了。

如果是L = [1,2,3,4,5],那key 过来的是1,2,3,4,5依次


  • 1

Reply