Skip to main content
 首页 » 编程设计

python之按字母顺序对列表中的子列表进行排序

2025年05月04日19softidea

我正在尝试按字母顺序对列表中的子列表进行排序,并且看到 .sort(key=lambda x: x[0]) 有效 here .这是我的 list :

lis = [['. Michels', 
        'Lorenzo Petroli', 
        'Carlos Arthur Lang Lisba', 
        'Fernanda Gusmo de Lima Kastensmidt', 
        'Luigi Carro'], 
       ['. Snchez', 'M. Rincn'], 
       ['A-Nasser Ansari', 'Mohamed Abdel-Mottaleb']] 
lis.sort(key=lambda x: x[0]) 

我现在调用 lis,它看起来好像第一个条目没有发生任何事情:

[['. Michels', 
  'Lorenzo Petroli', 
  'Carlos Arthur Lang Lisba', 
  'Fernanda Gusmo de Lima Kastensmidt', 
  'Luigi Carro'], 
 ['. Snchez', 'M. Rincn'], 
 ['A-Nasser Ansari', 'Mohamed Abdel-Mottaleb']] 

应该是

['. Michels', 
 'Carlos Arthur Lang Lisba', 
 'Fernanda Gusmo de Lima Kastensmidt', 
 'Lorenzo Petroli', 
 'Luigi Carro' 
 ] 

对吗?

请您参考如下方法:

试试这个:

for e in lis: 
  e.sort() 

这将就地对外部列表(即每个内部列表)的所有元素进行排序。

如果您需要排序副本,请查看@Mykola Zotko 的回答。不过,就地排序更便宜。

您的方法改为这样做:按内部列表的第一个元素对外部列表进行排序。不幸的是,基于第一个元素,外部列表已经排序( '. Michels' < '. Snchez' < 'A-Nasser Ansari' 因为 '.' 在 ASCII 码中的所有字母之前)。所以您的方法没有任何改变。