gpt4 book ai didi

Python:如何格式化循环以提取字典列表中的特定值?

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

所以我试图从我以特定格式制作的字典列表中提取信息,但在我的一生中,我无法创建一个循环来从我需要的地方提取信息,它只打印我没有收到错误。这是一个例子:

class Global():
prv_word = 'dumb'
cur_word = 'dog'
nxt_word = 'head'

class Animal():
dog = [
{'head': {'funny': [8 , 7 , 1],'dumb': [9 , 3 , 2],'poofy': [18 , 4 , 11]}},
{'tail': {'funny': [12, 2 , 4], 'dumb': [3 , 9 , 7],'poofy':[28 , 5 , 60]}}]

dog_cur = f'Animal.{Global.cur_word}'

if hasattr(Animal, Global.cur_word):
for list in dog_cur:
if Global.nxt_word in list:
adj = Global.nxt_word
index = list.index(Global.nxt_word)
for lis in list:
if Global.prv_word in lis:
adj2 = Global.prv_word
index2 = lis.index(Global.prv)
end = dog_cur[index][adj][adj2]
print(end)

##### TROUBLESHOOT #####
##### This works! But how do I format the loop to generate this result? #####
(print(Animal.dog[0]['head']['dumb']))

有人可以帮我展示一种方法,让这个循环弹出并显示相关值[9, 3, 2]。我也不认为格式化的 dog_cur 变量会起作用...是否有另一种方法可以将该变量格式化为与 f'Animal.{Global.cur_word}'< 相同的结果 我相信,如果您查看我的循环,您将能够看到我正在尝试从字典中的列表中提取值。在我的实际程序中,全局值不断变化,这就是为什么我需要一个可以找到这些值的循环。帮助将不胜感激!谢谢

最佳答案

class Global():
prv_word = 'dumb'
cur_word = 'dog'
nxt_word = 'head'

class Animal():
dog = [
{'head': {'funny': [8 , 7 , 1],'dumb': [9 , 3 , 2],'poofy': [18 , 4 , 11]}},
{'tail': {'funny': [12, 2 , 4], 'dumb': [3 , 9 , 7],'poofy':[28 , 5 , 60]}}]

def find():
animal_list = getattr(Animal,Global.cur_word, None)
if animal_list is None: return None

animal_part = next(filter(lambda pdct: Global.nxt_word in pdct, animal_list), None)
if animal_part is None: return None

if Global.nxt_word in animal_part and Global.prv_word in animal_part[Global.nxt_word]:
animal_part_data = animal_part[Global.nxt_word][Global.prv_word]
return animal_part_data
else:
return None

print(find())

关于Python:如何格式化循环以提取字典列表中的特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52676742/

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