Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对字典中的项目进行计数和排序_Python_Dictionary - Fatal编程技术网

Python 对字典中的项目进行计数和排序

Python 对字典中的项目进行计数和排序,python,dictionary,Python,Dictionary,当用户输入时,它会将其放入字典中。当没有填写任何内容或blanc时,代码应停止并给出字典中的所有输入+出现 nummer = 1 def namen(namen): var = 1 key = {} while var == 1: invoer = input('Volgende naam: ') if invoer != '': global nummer key[nummer] = i

当用户输入时,它会将其放入字典中。当没有填写任何内容或blanc时,代码应停止并给出字典中的所有输入+出现

nummer = 1
def namen(namen):
    var = 1

    key = {}

    while var == 1:
        invoer = input('Volgende naam: ')
        if invoer != '':
            global nummer
            key[nummer] = invoer
            nummer +=1
        else:

            return key
            break

hey = (namen(5))
我尝试了
计数器
循环,但没有成功。
例如,如果input=`h,d,d,hh,a,s

`it should give `
h=1
d=2
hh=1
a=1
s=1`
这看起来很有效

key = {}

while True:
    uinp = raw_input('Write something: ')
    print uinp
    if len(uinp) == 0:
        break

    try:
        key[uinp] += 1
    except:
        key[uinp] = 1

print key

这是您想要的吗?

如果输入保证用
(逗号空格)分隔,则可以将以下代码段用于
集合。计数器

>>> import collections
>>> input = 'h, d, d, hh, a, s'
>>> collections.Counter(input.split(', '))
Counter({'d': 2, 'a': 1, 'hh': 1, 's': 1, 'h': 1})
要获取特定格式,可以执行以下操作:

>>> for k, v in collections.Counter(input.split(', ')).items():
...     print ('{}={}'.format(k, v))
...
a=1
hh=1
s=1
d=2
h=1

如果您只想用逗号分隔,而忽略其他空格,那么可以将上述任何代码段中的
input.split(',')
替换为
[i.strip(),用于输入中的i.split(',)]
以下是对您的代码的重新编写,我认为您正在尝试实现这一点。它利用了标准
集合
模块提供的功能

from collections import Counter

def namen():

    bedragen = Counter()

    while True:
        invoer = input('Volgende naam: ')
        if invoer == '':
            break
        bedragen[invoer] += 1
    return bedragen


hey = namen()

看一看,非常感谢。这正是我在非常初学者友好的python中所需要的!非常感谢。使用try和except非常好。try/except必须小心使用。。。但通常比更复杂的代码更快更清晰。。乐于助人