我似乎在python中用词典打了一堵墙。 是否可以使用相同的键值对更新字典。 每当我尝试使用相同的键值对更新我的字典时,都不会执行更新操作,它会因为重复而忽略要更新的对。在python字典中更新键值对重复是否有一些限制?
我已在下面发布了我的代码以供演示。 谢谢Inadvance。
import time
import collections
from random import randrange
def faceCard(card,cardNum):
cDict = collections.OrderedDict()
print("Card:",card)
if card == 11:
cDict["Jack"] = 10
elif card == 12:
cDict["Queen"] = 10
elif card == 13:
cDict["King"] = 10
elif card == 14:
cDict["Ace"] = 11
else:
cDict[cardNum] = card
return cDict
def main():
pCards = collections.OrderedDict()
dCards = collections.OrderedDict()
while True:
pCards.update(faceCard(randrange(2,15,1),"pCard1"))
time.sleep(.25)
dCards.update(faceCard(randrange(2,15,1),"dCard1"))
time.sleep(.25)
pCards.update(faceCard(randrange(2,15,1),"pCard2"))
time.sleep(.25)
dCards.update(faceCard(randrange(2,15,1),"dCard2"))
time.sleep(.25)
print("Player",pCards)
print("Dealer",dCards)
pCards.clear()
dCards.clear()
if __name__ == "__main__":
main()
答案 0 :(得分:1)
你似乎对字典的作用感到困惑。
键可能只出现在字典中一次。无论最近的任务是什么,它都有一个与之关联的值。
将其视为电话簿:您只需将每个人的姓名保留在一个条目中,并与一个电话号码相关联。如果使用名称和相同的电话号码覆盖,则看不到任何更改。如果您使用新电话号码覆盖,则会取代旧电话号码。 (是的,您可以保留一个人的电话号码列表,但这是此示例的扩展名。)
答案 1 :(得分:0)
如果您希望将多个值与某个键相关联,则可以将其存储为<key, <list_of_values>>
的字典。
cDict = {}
def insert_into_dict(val):
if key not in cDict:
cDict[key] = [val]
else:
cDict[key].append(val)