在Python中搜索txtfile中的区号

2021-05-16 09:10:11 发布

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

我有一个文本文件是这样的:

Thomas Edgarson, Berliner Str 4, 13359 Berlin
Madeleine Jones, Müller Str 5, 15992 Karlsruhe
etc...

总是两个单词,后面跟着逗号,然后是两个单词和数字,逗号,区号和城市。没有例外。在

我用过

^{pr2}$

现在我有了所有列的列表。我现在如何在这些字符串中搜索区号。我需要创建一个这样的字典

{'13359':[('Neuss','Wolfgang'),('Juhnke','Harald')]}

相信我,我已经搜索过了,但找不到有用的信息。对我来说,搜索字符串中的任意区号之类的东西的想法是全新的,到目前为止我还没有遇到过。在

如果你能给我一些建议,我应该在哪里找教程,或者告诉我从哪里开始。在

3条回答
网友
1楼 ·
d={}

for line in open('useradresses.txt','r'):
    if line.strip()=='':
        continue
    (name,strasse,plzort) = line.split(',')
    nachname,vorname=name.split()
    plz,ort=plzort.split()
    if plz in d:
        d[plz].append((nachname,vorname))
    else:
        d[plz]=[(nachname,vorname),]
print d
网友
2楼 ·

通过文件Loop,读取行,并通过逗号split。然后,按空间分割处理每个部分。然后,将值添加到dictionary。在

网友
3楼 ·
dic = {}
with open('filename') as file:
    for name, addr, zcode in (i.split(',') for i in file if i.rstrip()):
        dic.setdefault(zcode.split()[0], []).append(name.split())

Sjoerd要求的进一步解释:

使用生成器表达式将每行分隔为3个变量:name、addr和zcode。然后我将zcode拆分成所需的数字,并将其用作字典键。在

由于dict可能还没有密钥,所以我使用setdefault方法,并在附加拆分后的名称之前用空列表设置密钥。在

相关问题