fo = open("PY202.txt","w")
txt = input("请输入类型序列: ")
d = {}
lst = txt.split(" ")
for i in lst:
d[i] = d[i] + 1
print(d)
lst = txt.split(" ") 中间要显示输空格" "非""
Traceback (most recent call last):
File "D:\KSWJJ\66000001\PY202.py", line 12, in <module>
d[i] = d[i] + 1
KeyError: '苹果'
默认 split()
按任意空白切,并把连续空白当作一个分隔符;
显式 split(' ')
只认单个空格字符,连续空格会产生空串。
分割后得到的每一个元素都是 str
类型,不会变成数字、列表或其他类型。
parts = "1 2.5 3".split() # ['1', '2.5', '3']
parts = "1,2.5,3".split(',') # ['1', '2.5', '3']
parts
里的三项全是字符串,想拿它们当整数、浮点数用,必须自己再转:d.__getitem__(i)
d.get(i, 0)
→ 存在就返回对应值,不存在返回 0,绝不抛异常
PyDict_GetItemWithError()
会先把键查一遍,找不到就置 KeyError 并返回 NULL;dict.get()
调用的是 PyDict_GetItem()
,找不到时直接返回你给的 default,不抛异常。