【发布时间】:2021-06-23 22:56:43
【问题描述】:
为了避免长 if / else 字符串,我想看看是否可以使用 for 循环来增加 userstats 列表中的值,方法是将值的位置放入具有相应统计信息的 dict 中。一个测试列表,userstats = [40, 40, 40, 40, 40, 40, 40]应该是[50, 50, 40, 40, 40, 40, 40],当输入“力量智力”时。
userstats = [40, 40, 40, 40, 40, 40, 40]
statdict = {"Strength":userstats[0], "Intelligence":userstats[1], "Willpower":userstats[2], "Agility":userstats[3], "Speed":userstats[4], "Endurance":userstats[5], "Personality":userstats[6]}
usfavstat = input("Enter your favored stats, seperated by one space. : ").title().split(" ")
for key, entry in statdict.items():
if key in usfavstat:
entry += 10
# Test input: Strength Intelligence
# Desired outcome: userstats = [50, 50, 40, 40, 40, 40, 40]
# Actual outcome: userstats = [40, 40, 40, 40, 40, 40, 40]
但是,这不起作用。我正在寻找一种在 for 循环中使用附加到 entry 的所述值位置来更改列表值的方法。我很确定,按照构造,entry 并不代表位置,而是代表它的价值。我确实希望有办法做到这一点。
【问题讨论】:
-
增加元素本身而不是相同变量的临时变量:
statdict[key] += 10 -
已编辑,因为我忘记包含要更改的内容。
-
编辑再次,因为我不擅长提问。如果您需要我进一步详细说明部分,请发表评论。
标签: python list dictionary for-loop