当用户提供输入时,将其放入字典中。如果没有填充任何内容或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))
我尝试了counter
和for
循环,但这不起作用。
因此,例如,如果input =`h,d,d,hh,a,s
`it should give `
h=1
d=2
hh=1
a=1
s=1`
答案 0 :(得分:1)
这是对您的代码进行的重新编写,可以实现我认为您要实现的目标。它利用了标准collections
模块中的Counter
。
from collections import Counter
def namen():
bedragen = Counter()
while True:
invoer = input('Volgende naam: ')
if invoer == '':
break
bedragen[invoer] += 1
return bedragen
hey = namen()
答案 1 :(得分:0)
看起来很有效..
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
这就是你想要的吗?
答案 2 :(得分:0)
如果保证输入被,
(逗号空格)分隔,则可以将以下代码段与collections.Counter
一起使用:
>>> 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() for i in input.split(',')]
。