我有一个文本文件,它的单个字符串格式如下,每个数字nad名称都是唯一的:
{"5-6位数字“:”名称“,"5-6位数字”:“名称”,“……”,"5-6位数字“:”名称“}
我还有一个Python数组,它包含200个唯一的名称字符串,我想遍历这个数组来找到匹配的5-6位数字,并将其存储为一个元组。由于文本文件中的单个字符串有"5-6位数字“:”name“位24,000次,所以问题是不确定有什么合适的方法来做到这一点。是否应该读取文本文件并将每个元素存储为数组,并对其进行搜索,或者使用类似于SQL的方法,或者使用不同的方法。
这里有一个例子来说明:
文本文件:
{“774774”:“约翰”,“775005”:“史蒂夫”,“35942”:“雅各布”,.,“768252”:“马特”} (24,000元素)
Python数组:
'Jacob', 'Janet', ...,'John'
发布于 2021-11-23 05:57:56
听起来你需要从名字到数字的逆映射。您可以对此使用dict理解,只需按以下方式翻转key: value语法:
num_to_name = {"774774":"John","775005":"Steve","35942":"Jacob", "768252":"Matt"}
name_to_num = {v: k for k, v in num_to_name.items()}
print(name_to_num)
# {'John': '774774', 'Steve': '775005', 'Jacob': '35942', 'Matt': '768252'}一旦有了名称到数字的映射,就可以简单地使用键查找来查找名称列表中每个名称的6位数字:
array = ['Jacob', 'Janet', 'John']
for name in array:
print(name, name_to_num.get(name, -1)) # where -1 when no number exists for name退出:
Jacob 35942
Janet -1
John 774774https://stackoverflow.com/questions/70076005
复制相似问题