如何在python中为2个列表和其他字典创建字典?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在python中为2个列表和其他字典创建字典?相关的知识,希望对你有一定的参考价值。

1。首先,我在代码中创建了变量POWERgandalfsaruman,然后创建了一个名为spells的变量来存储巫师施放的法术数量。

code

POWER = {
    'Fireball': 50, 
    'Lightning bolt': 40, 
    'Magic arrow': 10, 
    'Black Tentacles': 25, 
    'Contagion': 45
}

gandalf = ['Fireball', 'Lightning bolt', 'Lightning bolt', 'Magic arrow', 'Fireball', 
           'Magic arrow', 'Lightning bolt', 'Fireball', 'Fireball', 'Fireball']
saruman = ['Contagion', 'Contagion', 'Black Tentacles', 'Fireball', 'Black Tentacles', 
           'Lightning bolt', 'Magic arrow', 'Contagion', 'Magic arrow', 'Magic arrow']
spells=10

  1. 然后创建了两个变量,分别称为gandalf_wins和saruman_wins。将它们都设置为0。
gandalf_wins=0
saruman_wins=0
  1. 最后还有两个名为gandalf_power和saruman_power的变量,用于存储每个巫师的法术强度列表。
gandalf_power=[]
saruman_power=[]
  1. 战斗开始!使用上面创建的变量,对拼写冲突的执行进行编码。请记住,如果一个巫师连续连续赢得3次法术冲突,他将获胜。如果冲突在平局中结束,则连续获胜的计数器不会重新开始为0。记住打印谁是战斗的获胜者。

我被困在这里,是因为我不知道如何为每个具有该咒语和该咒语力量的人创建字典。那我该怎么比较呢?预先感谢!

答案

我认为这些步骤的指示非常清楚,使用for循环足以解决第3部分。

对于第四部分,您可以使用zip同时迭代两个列表。

for gandalf_pow, saruman_pow in zip(gandalf_power, saruman_power):
    # compare
另一答案

下面使用zip来遍历所有咒语并比较每回合的咒语威力。

POWER = {
    'Fireball': 50, 
    'Lightning bolt': 40, 
    'Magic arrow': 10, 
    'Black Tentacles': 25, 
    'Contagion': 45
}

gandalf = ['Fireball', 'Lightning bolt', 'Lightning bolt', 'Magic arrow', 'Fireball', 'Magic arrow', 'Lightning bolt', 'Fireball', 'Fireball', 'Fireball']
saruman = ['Contagion', 'Contagion', 'Black Tentacles', 'Fireball', 'Black Tentacles', 'Lightning bolt', 'Magic arrow', 'Contagion', 'Magic arrow', 'Magic arrow']
spells=10

gandalf_wins=0
saruman_wins=0

for gandalf_spell, saruman_spell in zip(gandalf,saruman): 
    if POWER[gandalf_spell] > POWER[saruman_spell]: 
        gandalf_wins+=1 
    elif POWER[saruman_spell] > POWER[gandalf_spell]: 
        saruman_wins+=1 

print(f"Gandalf won {gandalf_wins} times, Saruman won {saruman_wins} times")
另一答案

您应该参考Python字典。它们就像列表和元组一样,唯一的区别是它们就像数据库的表,其中有用于存储不同值的行和列

https://www.w3schools.com/python/python_dictionaries.asp请参阅此以获得帮助

另一答案

我认为您不需要为此使用字典。您可以尝试:

for x in range(spells):
    gandalf_attack = POWER[gandalf[x]]
    saruman_attack = POWER[saruman[x]]
    if gandalf_attack>saruman_attack:
        # Do something
    elif gandalf_attack>saruman_attack:
        # Do something
    else:
        # Tie

以上是关于如何在python中为2个列表和其他字典创建字典?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 python 中使用两个列表创建字典? [复制]

如何从 2 个 pkl 文件创建 Python 嵌套字典/将 2 个嵌套字典合并为一个?

在 Python 中从 JSON 数据创建列表和字典 [重复]

Python怎样把2个列表合成为一个字典?

第5课 python列表和字典

如何在 Python 中将两个列表组合成字典? [复制]