在python制作电话簿:我想通过固定我当前的代码
我做我喜欢的代码下面让这个屏幕....在python制作电话簿:我想通过固定我当前的代码
但正如我输入的数据,如垃圾邮件&号,以前的数据将被删除。
所以我想做出一个键多个值... (我认为使用名单还挺好的方法)
例如,
重点:垃圾邮件 - 价值:01,01099991234 ,
重点:垃圾邮件 - 价值:01032938962,01023421232,01023124242
enter image description here
我ñ总之,我希望得到这个打印(附图片)
这是我的代码:
enter code here phonebook = dict()
ntype = ['spam', 'friend', 'family', 'etc']
trash =[]
spam = []
friend = []
family = []
etc = []
while True:
a = input("Input your number and ntype : ")
b = a.split()
i = 0
j = 0
if a == 'exit':
print("end program")
break
exit()
elif a == "print spam":
print("*** spam numbers: ")
print('*', phonebook['spam'])
elif a == "print numbers":
print("*** numbers:")
for t in ntype:
try:
print("**", t)
print('*',phonebook[t])
except KeyError:
continue
print("** trash")
print("*", phonebook['trash'])
else:
while True:
try:
if ntype[j] in b:
for k in b:
if list(k)[0] == '0' and len(k) >= 10 and len(k) <= 11:
if k in phonebook.values():
print("Already Registered")
else:
phonebook[ntype[j]] = k
print(phonebook)
break
else:
j+=1
except IndexError:
if list(b[i])[0] == '0' and len(b[i]) >= 10 and len(b[i]) <= 11:
if b[i] in phonebook.values():
print("Already Registered")
else:
phonebook['trash'] = b[i]
print(phonebook)
break
else:
break
回答:
您应该使用名单这一点。问题是你不能附加到尚未设置的值。
>>> d = {} >>> d['a'].append('value')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'a'
而且,正如你所看到的,在相同的密钥分配多次不会做的伎俩。
>>> d = {} >>> d['a'] = 'value1'
>>> d['a'] = 'value2'
>>> d
{'a': 'value2'}
因此,为了使其工作,你可以初始化一个空清单中所有可能的密钥:
>>> d = {} >>> possible_keys = ['a', 'b']
>>> for k in possible_keys:
... d[k] = []
...
>>> d['a'].append('value1')
>>> d['a'].append('value2')
>>> d['b'].append('value3')
>>> d['b'].append('value4')
>>> d
{'b': ['value3', 'value4'], 'a': ['value1', 'value2']}
这工作,但它只是很累。初始化类型的字典是一件很常见的情况,这样的方法加入dict
添加一个默认值,如果它尚未设置:
>>> d = {} >>> d.setdefault('a', []).append('value1')
>>> d.setdefault('a', []).append('value2')
>>> d.setdefault('b', []).append('value3')
>>> d.setdefault('b', []).append('value4')
>>> d
{'b': ['value3', 'value4'], 'a': ['value1', 'value2']}
但话又说回来,你必须记住每次调用setdefault
。要解决这个问题,默认库提供defaultdict
。
>>> from collections import defaultdict >>> d = defaultdict(list)
>>> d['a'].append('value1')
>>> d['a'].append('value2')
>>> d['b'].append('value3')
>>> d['b'].append('value4')
>>> d['a']
['value1', 'value2']
>>> d['b']
['value3', 'value4']
这可能就是你需要的。
希望我能帮上忙。 ;)
以上是 在python制作电话簿:我想通过固定我当前的代码 的全部内容, 来源链接: utcz.com/qa/259533.html