Python:如何将一个字符串拆分成字典中的多个值空间
Python: How to split a string into multiple value spaces in a dictionary
我开始使用这种格式的文件:
a ; b
b ; c
c ; d,e
我需要得到一个字典,其中键来自箭头的左侧,值来自箭头的右侧;并且如果右侧有多个字母,它们将进入字典中的多个值。
这是我当前的代码:
cleanup = [part for part in [entry.replace('\n','') for entry in myFile]]
lefts = [part[0] for part in [entry.split(' ; ') for entry in cleanup]]
rights = [part[1] for part in [entry.split(' ; ') for entry in cleanup]]
myDict = defaultdict(list)
for left, right in zip(lefts, rights):
myDict[left].append(right)
和我目前的结果:
myDict = {'a': ['b'], 'b': ['c'], 'c': ['d,e']}
这显然不是我想要的——我需要 d 和 e 位于单独的值空间中,但与一个键 c 相关联。
提前致谢。
你们非常。你应该做的是,当你站在 right
一边时,用逗号分隔 that。所以现在你应该有一个包含这些单独项目的列表:
['d', 'e']
然后,不使用 append
,而是使用 extend
:
for left, right in zip(lefts, rights):
myDict[left].extend(right.split(','))
我开始使用这种格式的文件:
a ; b
b ; c
c ; d,e
我需要得到一个字典,其中键来自箭头的左侧,值来自箭头的右侧;并且如果右侧有多个字母,它们将进入字典中的多个值。
这是我当前的代码:
cleanup = [part for part in [entry.replace('\n','') for entry in myFile]]
lefts = [part[0] for part in [entry.split(' ; ') for entry in cleanup]]
rights = [part[1] for part in [entry.split(' ; ') for entry in cleanup]]
myDict = defaultdict(list)
for left, right in zip(lefts, rights):
myDict[left].append(right)
和我目前的结果:
myDict = {'a': ['b'], 'b': ['c'], 'c': ['d,e']}
这显然不是我想要的——我需要 d 和 e 位于单独的值空间中,但与一个键 c 相关联。
提前致谢。
你们非常。你应该做的是,当你站在 right
一边时,用逗号分隔 that。所以现在你应该有一个包含这些单独项目的列表:
['d', 'e']
然后,不使用 append
,而是使用 extend
:
for left, right in zip(lefts, rights):
myDict[left].extend(right.split(','))