我有一个作业,我必须从字符串中创建一个元组列表。我通过用.split()分割字符串来做到这一点。然后我遍历列表并将每个项目的项目和重复次数添加到dict中,如下所示:
for word in s:
if word in count_dict:
count_dict[word] += 1
else:
count_dict[word] = 1
在此之后,我使用以下方法创建元组列表:
pairs = count_dict.items()
其次是:
count_list = []
for pair in pairs:
count_list.append(pair)
count_list.sort(key=lambda x: x[1], reverse=True)
我按照每个元组中最大的x [1]元素的顺序排序并反转列表,以便我拥有最重复的项目。我的实际任务是首先出现具有最高重复次数的元素,并使具有相同重复次数的元素按字母顺序排列在最大元素后面。
答案 0 :(得分:0)
另一种反转数字排序的方法是在键函数中使数字为负数
现在将第二个排序顺序组合成一个元组
count_list.sort(key=lambda x: (-x[1], x[0]))
有必要摆脱reverse=True
,否则字母排序将会被颠倒。
答案 1 :(得分:0)
count_list.sort(key=lambda x: int(x[1]), reverse=True)
lamba
按字母顺序处理数字字符串(18位于reverse
中的1503之前),但是按正确的数字顺序处理整数,因此将x[1]
转换为整数就可以满足您的要求对