我有一个看起来像这样的文本文件:
Thomas Edgarson, Berliner Str 4, 13359 Berlin
Madeleine Jones, Müller Str 5, 15992 Karlsruhe
etc...
总是两个单词,后跟逗号,然后是两个单词和数字,逗号,区号和城市。没有例外。
我用过
f=open("C:\\Users\\xxxxxx\\Desktop\\useradresses.txt", "r")
text=f.readlines()
f.close()
所以现在我有了所有列的列表。我现在如何在这些字符串中搜索区号。我需要创建一个看起来像这样的字典
{'13359':[('Neuss','Wolfgang'),('Juhnke','Harald')]}
相信我,我已经搜索过,但找不到有用的信息。对我来说,在字符串中搜索像仲裁区域代码这样的东西的整个想法是新的,到目前为止我还没有遇到它。
如果你能给我一些关于我应该在哪里寻找教程的建议,或者让我知道从哪里开始,我会很高兴。
答案 0 :(得分:1)
Loop通过文件,阅读行和split逗号。然后,通过空间分割处理每个部分。然后,将值添加到dictionary。
答案 1 :(得分: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 :(得分:1)
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
方法,并在附加分割名称之前用空列表设置密钥。
答案 3 :(得分:-1)