同时在python中进行排序和交换

时间:2017-04-24 07:19:45

标签: python

  

输入第一个字符串: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及其字母。如果我从最高到最低排序,我不想排序空列表,但我会交换它。但是如何在不使用函数的情况下交换它呢?感谢

1 个答案:

答案 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