根据字典循环列出一系列数字

2024-09-29 23:26:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大的电话号码列表从号码表(从一个文件),并需要映射到前缀号码从字典。如何与这两个数字匹配?你知道吗

number_list = [919865588453, 919613851649, 919869863504]
number_map = {91986 : 'Area 1', 9196138 : {'Area 2'}, 9198698 : 'Area 3'}

for number in number_list:
    for partialnum_ref, map_ref in number_map.iteritems():
        if re.match(number"\d", partialnum_ref):
            print "%d is in %s" % (number, map_ref)

Tags: 文件inrefnumbermap列表for字典
1条回答
网友
1楼 · 发布于 2024-09-29 23:26:03

为什么'Area 2'在一个集合中?你知道吗

但是,假设您想要最具体的区域:

number_list = [919865588453, 919613851649, 919869863504, 123456789012]
number_map = {91986 : 'Area 1', 9196138 : 'Area 2', 9198698 : 'Area 3'}

for number in number_list:
    for prefix, area in sorted(number_map.items(), key=lambda x: len(x[1])):
        if str(number).startswith(str(prefix)):
            print "%d is in %s" % (number, area)
            break
    else:
        print "%d is in no area" % number

产生

919865588453 is in Area 1
919613851649 is in Area 2
919869863504 is in Area 3
123456789012 is in no area

如果您想要一个数字所在的所有区域,而不是最特定的区域,您可以删除sortedbreak。你知道吗

相关问题 更多 >

    热门问题