0
我有多個重要性順序排列的名單。我需要對這個列表進行排序。重要的是,列表中的姓氏是重要的。如果在列表中有兩個與姓氏相似的名字,則應先打印姓氏。此外,我需要確保排序後字母不會更改。按重要性順序排列名單中的名字
>>> mylist = ["Ramesh G","K V R Santhosh","Srikanth T G", "R V Laxaman","Ramesh Ghosh"]
>>> mylist.sort()
>>> for x in sorted(mylist):
... print x
...
K V R Santhosh
R V Laxaman
Ramesh G
Ramesh Ghosh
Srikanth T G
在上述排序我得到「拉梅什G」先打印出來,我的要求是打印「拉梅什戈什」之前「拉梅什G」如下:
K V R Santhosh
R V Laxaman
Ramesh Ghosh
Ramesh G
Srikanth T G
謝謝
我已經管理編寫代碼來按姓氏排序名稱,但仍然無法找出如何排序後在列表中的任何類似名稱之前打印姓氏。
#!/bin/python
# sort a list of names by last name
import operator
data = input ("Enter the list: ")
data_as_lists = [ line.split() for line in data ]
data_as_lists.sort(key=operator.itemgetter(-1))
for each_item in data_as_lists :
print " ".join(each_item)
此代碼打印輸出如下:
python sort_name.py
Enter the list: ["Ramesh G","K V R Santhosh","Srikanth T G", "R V Laxaman","Ramesh Ghosh"]
Ramesh G
Srikanth T G
Ramesh Ghosh
R V Laxaman
K V R Santhosh
所需的輸出,我想應該是這樣的:
python sort_name.py
Enter the list: ["Ramesh G","K V R Santhosh","Srikanth T G", "R V Laxaman","Ramesh Ghosh"]
Ramesh Ghosh
Ramesh G
Srikanth T G
R V Laxaman
K V R Santhosh
感謝您的輸入 在以下情況下失敗根據要求打印結果。 >>> MYLIST = [ 「阿蘭」, 「ALAN」, 「ALAN」, 「ALAN」, 「阿蘭」, 「ALAN」, 「ALAN」, 「ALAN」, 「ALAN」,」 ALAN「] >>> mylist.sort(CMP = mycmp) >>>打印 」\ n「 個。加入(MYLIST) 羅志祥 艾倫 艾倫 艾倫 艾倫 艾倫 艾倫 艾倫 艾倫 艾倫 期望的輸出應該是這樣的: [「alAN」,「aLaN」,「 alan「,」AlaN「,」AlAn「,」ALan「,」alaN「,」alAn「,」aLan「,」Alan「] – PratapSingh 2012-04-23 18:53:21
@PratapSingh根據您的要求修改cmp功能,它可以完成 – 2012-04-23 19:45:55