gpt4 book ai didi

python - 将字典与变量进行比较

转载 作者:太空宇宙 更新时间:2023-11-04 02:10:56 27 4
gpt4 key购买 nike

我正在尝试将字典值与变量进行比较,但由于某些原因,我无法从字典中输出我想要的部分。该词典是来自 html 表的输出。这是我用来将 html 表插入字典的代码:

with open('output.csv') as fd:
rd = csv.DictReader(fd, skipinitialspace=True)
for row in rd:
lista = { k: row[k] for k in row if k in ['Name', 'Clan Days']}

这是输出:

{'Name': 'SirFulgeruL2k19', 'Clan Days': '140'}
{'Name': 'Darius', 'Clan Days': '127'}

我如何比较第一个字典中的氏族天数,如果该值与我在变量中设置的值匹配,应该将名称作为字符串获取,以便稍后在另一行中使用它。

最佳答案

假设您首先将数据读入字典列表:

data = [{ k: row[k] for k in row if k in ['Name', 'Clan Days']}
for row in rd]

您可以使用 next()data 中搜索与 Clan Days 值匹配的第一个字典,如果没有条目与您的搜索查询匹配,则默认为 None:

desired_clan_days = '140'
clan_name = next((entry["Name"] for entry in data
if entry["Clan Days"] == desired_clan_days), None)

现在,next() 将返回第一个匹配项,如果您需要所有匹配项,只需使用列表理解:

clan_names = [entry["Name"] for entry in data 
if entry["Clan Days"] == desired_clan_days]

请注意,这种搜索要求您在最坏的情况下(未找到条目)循环遍历 data 中的所有条目。如果这种搜索是这种数据结构的主要用例,请考虑重新设计它以更好地适应问题——例如将 clan_days 值作为具有氏族名称列表的键:

data = { 
"140": ["SirFulgeruL2k19"],
"127": ["Darius"]
}

在那种状态下,获得匹配将是一个持续的操作,就像 data[desired_clan_days] 一样简单。 defaultdict(list) 可以帮助您进行这种转换。

关于python - 将字典与变量进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53750461/

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