gpt4 book ai didi

python - 从字符串中以元组或列表的形式返回字典值

转载 作者:太空宇宙 更新时间:2023-11-03 15:00:45 25 4
gpt4 key购买 nike

我有一个很长的字符串,我正在逐行从文件中读取它。我正在尝试将这些行转换为字典并尝试检查给定的键值是否存在于它必须返回 true 的字典键值中。

示例:

>>> data
'Xyz pqrs,uvw'
>>> dict(line.split(',') for line in data.strip().splitlines())
{'Xyz pqrs': 'uvw'}

这是我得到的结果

预期结果:

在元组中

 {'Xyz' : ('pqrs','uvw')}

或列表

{'Xyz' : ['pqrs','uvw']}

如果 data.values() 中存在 'pqrs',它必须打印"is"

  >>> data2
{'Xyz': ['pqrs', 'uvw']}
>>>


>>> if 'pqrs' in (d for d in data2.values()):
... print "yes"
...

>>> if 'pqrs' in data2.values():
... print "yes"
...

两种方法我都试过了,但没有从输出中得到任何东西。

任何提示都会有所帮助。

最佳答案

您可以使用嵌套字典理解创建字典:

>>> data = """Xyz         pqrs,uvw
... Abc foo,bar,blub"""
>>> d = {key: values.split(",") for key, values in
(line.split() for line in data.splitlines())}
>>> d
{'Xyz': ['pqrs', 'uvw'], 'Abc': ['foo', 'bar', 'blub']}

然后用any检查包含:

>>> any("pqrs" in v for v in d.values())
True

更新:由于您似乎使用的是 Python 2.6,在 dict-comprehensions 存在之前,你必须使用这个等效的形式:

>>> d = dict((key, values.split(",")) for key, values in 
(line.split() for line in data.splitlines()))

关于python - 从字符串中以元组或列表的形式返回字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38211770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com