Python 对字典中的项目进行计数和排序
当用户输入时,它会将其放入字典中。当没有填写任何内容或blanc时,代码应停止并给出字典中的所有输入+出现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
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必须小心使用。。。但通常比更复杂的代码更快更清晰。。乐于助人