我有一个收入活动和值的字典(是或否)和一个按钮标题列表。目标是创建一个新列表,并总是附加一个字典,如果收入活动的值为"是",则其中一个值来自按钮贴片。但是,我不知道如何遍历"收入活动"one_answers"值"。字典和遍历的标题同时在新字典中始终设置正确的标题。这是代码:
income_activities = ['question_fishing','question_livestock','question_firewood','question_crop']
income_activities_values = [tracker.get_slot("question_fishing"), tracker.get_slot("question_livestock"), tracker.get_slot("question_firewood"), tracker.get_slot("question_crop")]
dic = dict(zip(income_activities, income_activities_values))
button_titles = ['Fishing', 'Livestock', 'Firewood', 'Crop']
buttons = [] #new list of dictionaries
for key, value in dic.items():
if value == 'yes':
buttons.append({"payload":'/affirm', "title": value_of_button_titles})
例如,如果dic看起来像这样:
{'question_fishing': 'yes', 'question_livestock': 'yes', 'question_firewood': 'no', 'question_crop': 'yes'}
字典的最终按钮列表应该是这样的:
buttons=[
{"payload":'/affirm', "title": "Fishing"},
{"payload":'/affirm', "title": "Livestock"},
{"payload":'/affirm', "title": "Crop"}
]
我不确定我的问题是否正确,但是如何:
for button_title, (key, value) in zip(button_titles, dic.items()):
if value == 'yes':
buttons.append({"payload":'/affirm', "title": button_title})
你可以迭代索引而不是值:
for i in range(len(dic)):
if income_activities_values[i] == 'yes':
buttons.append({"payload":'/affirm', "title": button_titles[i]})