Python 中的字典由键值对组成。因此,在您的示例中,one 键将是 '950001,959070,959071,959072,950908,959073'。在下面的解释中,我将调用950001、959070 等等只是“数字”。
方法 1: 您可以在 dict 的所有键上编写一个循环,并将每个键拆分为一个列表,在每个逗号 , 和 str.split 处。然后您的列表包含您的号码,您可以检查您请求的号码n 是否在其中:
mydict = {'950001,959070,959071,959072,950908,959073': 'value1', '400856,400857,400858,400859,400860,400861': 'value2', '920100': 'value3', '950107,950109,950108': 'value4'}
n = '950001'
for key in mydict:
if n in key.split(','):
print(mydict[key])
哪些打印:
value1
方法 2: 或者,您可以将字典 mydict 转换为新字典 new_dict,这样每个数字都有自己的键:
mydict = {'950001,959070,959071,959072,950908,959073': 'value1', '400856,400857,400858,400859,400860,400861': 'value2', '920100': 'value3', '950107,950109,950108': 'value4'}
new_dict = {}
for key in mydict:
for new_key in key.split(','):
new_dict[new_key] = mydict[key]
print(new_dict)
哪些打印:
{'950001': 'value1', '959070': 'value1', '959071': 'value1', '959072': 'value1', '950908': 'value1', '959073': 'value1', '400856': 'value2', '400857': 'value2', '400858': 'value2', '400859': 'value2', '400860': 'value2', '400861': 'value2', '920100': 'value3', '950107': 'value4', '950109': 'value4', '950108': 'value4'}
然后你就可以像new_dict['950001']所说的那样访问你的值了。
上面的代码强调清晰。根据您的用例,您可以编写一个函数和/或使用 dict comprehension 让您的代码看起来更漂亮(如果您对此感到满意):
mydict = {'950001,959070,959071,959072,950908,959073': 'value1', '400856,400857,400858,400859,400860,400861': 'value2', '920100': 'value3', '950107,950109,950108': 'value4'}
new_dict = {nk: v for k, v in mydict.items() for nk in k.split(',')}
print(new_dict['950001'])