Ari*_*lla 1 python sorting list
def Sorting(lst):
lst.sort(key=str.lower)
lst.sort(key=len)
return lst
lst = ["Ronit", "Dan", "Yael"]
print Sorting(lst)
Run Code Online (Sandbox Code Playgroud)
此代码按字母顺序对列表进行排序,然后按长度进行排序。我想知道为什么会“低”?它不适用于大写字母吗?它是做什么用的?
它执行不区分大小写的排序。
让我们稍微修改一下您的示例,以包含另一个条目“dan”:
lst = ['Ronit', 'Dan', 'dan']
Run Code Online (Sandbox Code Playgroud)
自然地,您会期望“Dan”和“dan”一起出现。但由于字符串排序的特性,它们并没有这样做。相反,一个简单的list.sort调用会给你:
lst.sort()
print(lst)
['Dan', 'Ronit', 'dan']
Run Code Online (Sandbox Code Playgroud)
另一方面,指定str.lower给你这个:
lst.sort(key=str.lower)
print(lst)
['Dan', 'dan', 'Ronit']
Run Code Online (Sandbox Code Playgroud)
在这里,原始列表元素根据其小写等效项进行排序。
假设您了解其含义(是的,按长度排序) ,第二个list.sort调用len现在应该是不言自明的。key
要理解为什么在第二个之前需要第一个,请考虑另一个人为的示例:
lst = ['Ronit', 'Dan', 'ram', 'dan']
Run Code Online (Sandbox Code Playgroud)
首先,考虑key=len:
lst.sort(key=len)
print(lst)
['Dan', 'ram', 'dan', 'Ronit']
Run Code Online (Sandbox Code Playgroud)
那个“公羊”在这里看起来不合适。这正是我们迈出第一步的原因。现在,添加该步骤使我们的输出更加合理。
lst.sort(key=str.lower)
lst.sort(key=len)
print(lst)
['Dan', 'dan', 'ram', 'Ronit']
Run Code Online (Sandbox Code Playgroud)
因此,总而言之,元素首先不区分大小写排序,然后按长度排序。
| 归档时间: |
|
| 查看次数: |
4203 次 |
| 最近记录: |