0

我试图将文本文件转换为字典。文本格式如下:

0 <-> a
1 <-> b
2 <-> cd
3 <-> E
5 <-> f
6 <-> G
7 <-> hij
9 <-> k

我尝试读取每一行文本文件,然后将其放入具有特定格式的空字典中:

例如:

{'0': {'a'}, '1': {'b'}, '2': {'c', 'd'}, '3': {'e'}, '5': {'f'}, '6': {'g'}, '7': {'h', 'i', 'j'}, '9': {'k'}}

我试过:

d = {}
with open('txtfile.txt') as f:
    for line in f:
        (key,val) = line.strip().split('<->')
        d[str(key).strip()] = val.strip()

return(d)

然后我得到:

{'0': 'a', '1': 'b', '2': 'cd', '3': 'e', '5': 'f', '6': 'g', '7': 'hij', '9': 'k'}

我试图将cd&拆分hij{'c', 'd'}and {'h','i','j'},但我无法找到一种方法来做到这一点,即使我使用条带删除了文本文件中每一行开头和结尾的空白,但是当我用于循环检查每个键和字典的值,每个字符之间有一些空白空间。

4

1 回答 1

1

你快到了,你只需要调用setval.strip()你的字符串,例如"ab",转换为一个集合,例如{"a", "b"},即:

d = {}                                                                          
with open('txtfile.txt') as f:                                                  
    for line in f:                                                              
        key, val = line.strip().split('<->')                                   
        d[key.strip()] = set(val.strip())

print(d)

输出:

{'0': {'a'}, '1': {'b'}, '2': {'d', 'c'}, '3': {'E'}, '5': {'f'}, '6': {'G'}, '7': {'h', 'j', 'i'}, '9': {'k'}}
于 2020-03-26T07:37:50.403 回答