为了账号安全,请及时绑定邮箱和手机立即绑定

Python - 如何在 django 模板中并排显示来自两个键的所有值的字典值

Python - 如何在 django 模板中并排显示来自两个键的所有值的字典值

湖上湖 2023-02-07 13:37:25
假设我的 Django 视图中有以下字典:dict_lyrics = {'question': ['word1', 'word2'], 'answer': ['word3', 'word4']}现在在我的模板中,我想将其显示为:word1 - word3word2 - word4(它已经按正确的顺序排列。)但我做不对。如何从一个键中获取第一个值,从第二个键中获取第一个值,依此类推?我无休止地用谷歌搜索,并且在兜圈子。如果我这样迭代:{% for key, value in dict_lyrics.items %}    <tr>        <td> Key: {{ key }} </td>        <td> Value: {{ value }} </td>    </tr>{% endfor %}...我从一个键中获取所有值,然后从另一个键中获取所有值。我怎样才能并排显示它们,还是更改我的字典更好?我的看法:z = []dict_lyrics = {'question': [], 'answer': []}for word in user_word:    x = lyrics_list_clean.index(word)    y = user_word.index(word)    flash = Flashcard.objects.get(owner=self.request.user, question=word)    z.append(flash.answer)    dict_lyrics['question'].append(lyrics_list_clean[x])    dict_lyrics['answer'].append(z[y])    context['question'] = dict_lyrics['question']    context['answer'] = dict_lyrics['answer']    context['dict_lyrics'] = dict_lyrics预先感谢您的任何建议/帮助。
查看完整描述

2 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

将此添加到我的观点中:


context['combined'] = list(zip(dict_lyrics['question'], dict_lyrics['answer']))

然后在模板中使用它:


{% for i, j in combined %}

    {{ i }} -- {{ j }}

{% endfor %}

解决了我的问题。


查看完整回答
反对 回复 2023-02-07
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

据我了解您的问题以及 dict_lyrics 的进展情况,如果您想以这种形式显示问题 0 的答案 0 和问题 1 的答案 1:


word1 - word3

word2 - word4

你可以这样做:


answers = [v for subl in li.values() for v in subl]

frist_qa = answers[0::2]

second_qa = answers[1::2]

print(f"{' '.join(first_qa)}")

print(f"{' '.join(second_qa)}")

在哪里first_qa举行['word1', 'word3']和second_qa举行['word2', 'word4']


以更一般的方式,例如,这个 dict_lyricsdict_lyrics = {'question': ['word1', 'word2', 'wordX'], 'answer': ['word3', 'word4', 'wordY']}


并假设len(dict_lyrics["question"]) == len(dict_lyrics["answer"])


for i in range(len(li["question"])):

    print(f"{li['question'][i]} {li['answer'][i]}")

应该做的伎俩:


word1 word3

word2 word4

wordX wordY

编辑:发表评论后,我猜您正在寻找某种 HTML 输出。我会像这样更改您在问题中显示的循环:


{% for i in range(len(li["question"])): %}

    <tr>

        <td> Key: {{ li['question'][i] }} </td>

        <td> Value: {{ li['answer'][i] }} </td>

    </tr>

{% endfor %}


查看完整回答
反对 回复 2023-02-07
  • 2 回答
  • 0 关注
  • 78 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信