-1

我在从字典中获取值时遇到问题。di 是字典。

for key in di.keys()
    print("key is = %s" %key)
for value in di.values()
    print("value is = %s" %value)

它给出的输出为

key is = 1

value is = xyz=0 | pqr=70 | abc=300

我希望以上所有 3 个值(0,70,300)在单独的变量中。我做不到

di['xyz']

因为 xyz 本身就是一个值。如何获取所有这些值?它是嵌套字典吗?

4

1 回答 1

2

从外观上看,这是你的字典

>>> di = {'1': 'xyz=0 | pqr=70 | abc=300'}

或者也许{1: 'xyz=0 | pqr=70 | abc=300'},但你的问题不是很清楚,所以我假设第一个。

奇怪的是你会把它当作字典,所以我不会费心去思考为什么会这样,相反,我只会告诉你如何从字符串中构建你想要的东西'xyz=0 | pqr=70 | abc=300'

>>> di['1'].split(' | ')
['xyz=0', 'pqr=70', 'abc=300']

由竖线分割

>>> [x.split('=') for x in di['1'].split(' | ')]
[['xyz', '0'], ['pqr', '70'], ['abc', '300']]

按等号拆分以生成密钥对列表

>>> dict(x.split('=') for x in di['1'].split(' | '))
{'xyz': '0', 'abc': '300', 'pqr': '70'}

建立dict一个

>>> di = dict(x.split('=') for x in di['1'].split(' | '))
>>> di['xyz']
'0'

现在你可以像访问它一样di['xyz']

于 2013-04-25T05:39:10.533 回答