输入第一个字符串:abbc
输入第二个字符串:aAaabbccCCcccddeeffffggzba
发现字母a:找到5个字母b:找到3个字母c:7
最终[5,3,7]空列表[' a','''' c']
第二个
================== RESTART:/Users/Handy/Documents/task3.py ================= =输入第一个字符串:badcefdke
输入第二个字符串:dkenzmdnfer
找到信件d:找到2个字母e:找到2个字母f:找到1个字母 K:1最终[2,2,1,1]
空列表[' d',' e',' f',' k']
我需要帮助,以便在第一个中我可以正确打印最高的numbber及其字母。如果我从最高到最低排序,我不想排序空列表,但我会交换它。但是如何在不使用函数的情况下交换它呢?感谢
答案 0 :(得分:0)
这会在字典中记下重复的字符,然后创建一个已排序的列表(使用max()和dict.pop(key,None)排序)值
first_str = input('Enter first string >').strip()
second_str = input('Enter second string >').strip()
first_str = first_str.lower()
first_str = set(first_str)
second_str = second_str.lower()
counts = {}
for character in first_str:
counts [character] = second_str.count(character)
counts_list = []
popdict = {k: v for k,v in counts.items()}
for k in counts:
key, value = max(popdict, key=popdict.get),max(popdict.values())
counts_list.append([key,value])
popdict.pop(key, None)
for sublist in counts_list:
print (sublist[0]+' = '+str(sublist[1]))
打印:
[['c', 7], ['a', 5], ['b', 3]]
c = 7
a = 5
b = 3