在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

回到顶部