gpt4 book ai didi

python - 如何快速解析出字典键中该字符串的前缀?

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

我有一本 Python 字典:

dict1 = {'first': 'ABCDE', 'second': 12345, 'third': KITTY , 'four': dogcatbirdelephant, ...}

需要明确的是,我正在解析数据并将其放入 Python 字典中。

我的问题:有时third的值有一个前缀。我使用的是 A:KITTYK:CAT,而不是 KITTYCAT 值。前缀可以是任何字母,并且总是用冒号将我想要的值(例如 KITTY)与我不想要的前缀(A:)分开

但是,并非所有值都是这样。有些实际上是没有前缀的字符串。

如果我保存“冒号后面的所有内容”,如何解析这些字典值?会用 for 语句进行检查吗? (我宁愿避免这种情况,因为我认为这会对性能造成重大影响。)

最佳答案

@PatrickHaugh 的答案是正确的。您可能需要进行一些过滤,因为您的示例列表既有整数又有字符串。

你的问题是“我正在解析数据并放入字典中”,所以我假设它们来自二元组中的某个位置,而不是来自另一个字典。

如果字典中已有数据,那么您将必须循环遍历键。

#!/usr/bin/env python

class Kitty(object):
def __init__(self):
self.d = {}

def meow(self, k, v):
"""check for integers before adding to dictionary"""
try:
int(v)
self.d[k] = v
except ValueError:
self.d[k] = v.split(":")[-1]

if __name__ == "__main__":
kitty = Kitty()
kitty.meow("first", 12345)
kitty.meow("second", "A:KITTY")
kitty.meow("third", "B:KITTY")
kitty.meow("fourth", "C:KITTY")
kitty.meow("fifth", "KITTY")
kitty.meow("sixty", "kreplach")

print(kitty.d)

结果是:

{'third': 'KITTY', 'second': 'KITTY', 'fourth': 'KITTY', 'sixty': 'kreplach', 'fifth': 'KITTY', 'first': 12345}

至于“高效”,那是另一个问题了。 Python 的字符串方法非常高效,如何将数据提供给函数由您决定。

关于python - 如何快速解析出字典键中该字符串的前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40684247/

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