任务是:你能做一个程序
将此字符串设为大写 按姓氏的字母顺序排列。 当姓氏相同时,按名字排序。客人的姓和名出现在括号之间,括号之间用逗号隔开。你知道吗
我所做的:
def meeting(s):
res=''
for i in s.split(';'):
s1 = i.split(':')[::-1]
res += '(' + ', '.join(s1) + ')'
return res.upper()
输入:
testing("Alexis:Wahl;John:Bell;Victoria:Schwarz;Abba:Dorny;Grace:Meta;Ann:Arno;Madison:STAN;Alex:Cornwell;Lewis:Kern;Megan:Stan;Alex:Korn")
这就是我得到的:
(WAHL, ALEXIS)(BELL, JOHN)(SCHWARZ, VICTORIA)(DORNY, ABBA)(META, GRACE)(ARNO, ANN)(STAN, MADISON)(CORNWELL, ALEX)(KERN, LEWIS)(STAN, MEGAN)(KORN, ALEX)
我需要的是:
(ARNO, ANN)(BELL, JOHN)(CORNWELL, ALEX)(DORNY, ABBA)(KERN, LEWIS)(KORN, ALEX) (META, GRACE)(SCHWARZ, VICTORIA)(STAN, MADISON)(STAN, MEGAN)(WAHL, ALEXIS)
如何根据需要进行分类?你知道吗
您想要的是调用列表上的sort函数并指定排序方式。 您的
s1
列表包含两个元组,每个元组包含两个项。你似乎希望你的排序是第一项的第一,第二项的第二排序(打破联系)。为了实现这一点,您应该首先对次要条件进行排序,然后对主要条件进行排序。这是因为python的sort是“稳定的”,这意味着在每个sort操作中,关系都保持在它们开始时的顺序。 要给排序函数指定条件,请将lambda指定为key
参数,lambda有一个参数(将是列表中的每个元组)并返回要排序的属性(元组中的特定项)。你知道吗举个例子:
由于您将姓氏放在输出的第一位,因此可以先格式化,然后按字母顺序排序:
相关问题 更多 >
编程相关推荐