一_建设网站前的市场分析,免费网站模板无需注册,二手车网站系统,营销型网站建设套餐在Python中#xff0c;列表#xff08;list#xff09;的sort()方法默认按照元素的字典顺序进行排序。对于包含字符串的列表#xff0c;它会按照字符串的字典顺序#xff08;即字母顺序#xff09;进行排序。
然而#xff0c;对于嵌套列表#xff08;即列表中的元素也…在Python中列表list的sort()方法默认按照元素的字典顺序进行排序。对于包含字符串的列表它会按照字符串的字典顺序即字母顺序进行排序。
然而对于嵌套列表即列表中的元素也是列表sort()方法会比较每个子列表的第一个元素如果第一个元素相同则比较第二个元素以此类推。
在你给出的例子中
lst [[jfk,kul],[jfk,nrt]]
两个子列表的第一个元素都是jfk因此它们在这一轮比较中是相等的。但由于sort()方法默认只比较到第一个不同的元素所以在这种情况下它不会继续比较第二个元素而是认为这两个子列表是相等的。因此这个列表在调用sort()方法后不会改变顺序。
如果你想要根据子列表中的第二个元素进行排序你可以提供一个自定义的比较函数key function给sort()方法。例如
lst [[jfk,kul],[jfk,nrt]] lst.sort(keylambda x: x[1]) print(lst) # 输出[[jfk, kul], [jfk, nrt]]
在这个例子中lambda x: x[1]是一个匿名函数它接收一个子列表x作为输入并返回x的第二个元素。这样sort()方法就会根据每个子列表的第二个元素进行排序。注意由于kul在字典顺序上先于nrt所以排序后的列表是[[jfk, kul], [jfk, nrt]]。