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,不抛异常。