合并两个不同大小的列表以创建python中的新词典

合并两个不同大小的列表以创建python中的新词典,python,dictionary,recursion,set,Python,Dictionary,Recursion,Set,我正在尝试使用符号和它们的值递归地制作一副卡片,我可以创建代码使一张卡片通过迭代,但它不会更新以创建所有52张卡片。 我尝试过使用不同的更新方法,但由于编码错误,它们不能正常工作 test_values = ["♠", "♣", "♥", "♦"] test_keys = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'] # Printing original keys-value lists print (

我正在尝试使用符号和它们的值递归地制作一副卡片,我可以创建代码使一张卡片通过迭代,但它不会更新以创建所有52张卡片。 我尝试过使用不同的更新方法,但由于编码错误,它们不能正常工作

test_values = ["♠", "♣", "♥", "♦"]
test_keys = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']


# Printing original keys-value lists
print ("Original key list is : " + str(test_keys))
print ("Original value list is : " + str(test_values))


new_dict = {}

for key in test_keys:
    for value in test_values:
        res[key] = value
        new_dict = {**new_dict, **res}

# Printing resultant dictionary
print ("Resultant dictionary is : " +  str(res))
print(new_dict)
输出:

{'A':'♦', '2': '♦', '3': '♦', '4': '♦', '5': '♦', '6': '♦', '7': '♦', '8': '♦', '9': '♦', '10': '♦', 'J':'♦', 'Q':'♦', 'K':'♦'}

为什么只创建最后一套?

您可能希望创建所有卡片的列表,而不是字典。以下是创建元组列表的方法:

test_值=[”♠", "♣", "♥", "♦"]
测试键=['A'、'2'、'3'、'4'、'5'、'6'、'7'、'8'、'9'、'10'、'J'、'Q'、'K']
#打印原始密钥值列表
打印(“原始密钥列表为:”+str(测试密钥))
打印(“原始值列表为:”+str(测试值))
卡片=[]
对于输入测试密钥:
对于测试_值中的值:
卡片。追加(键+值)
#打印结果列表
打印(卡片)
这将提供以下输出:

['A♠', 'A.♣', 'A.♥', 'A.♦', '2.♠', '2.♣', '2.♥', '2.♦', '3.♠', '3.♣', '3.♥', '3.♦', '4.♠', '4.♣', '4.♥', '4.♦', '5.♠', '5.♣', '5.♥', '5.♦', '6.♠', '6.♣', '6.♥', '6.♦', '7.♠', '7.♣', '7.♥', '7.♦', '8.♠', '8.♣', '8.♥', '8.♦', '9♠', '9♣', '9♥', '9♦', '10♠', '10♣', '10♥', '10♦', 'J♠', 'J♣', 'J♥', 'J♦', 'Q♠', 'Q♣', 'Q♥', 'Q♦', 'K♠', 'K♣', 'K♥', 'K♦']

在解决方案的字典中仅创建了最后一套,原因是字典键只能包含一个值→ ♠, 这就创建了字典
{'A':'♠'}。然后映射→ ♣, 这将重写
'A'
的初始值,将字典更改为
{'A':'♣'}

您希望得到什么结果?字典键必须是唯一的…这本字典到底应该用于什么?注意,您的示例并不完整,因为
res
没有在任何地方定义是的,我忘记了
res={}
上面的语句。我的错。字典用于我正在制作的21点游戏。谢谢。我忘了字典是这样制作的。我像上面一样通过组合套装+值来创建卡片,但是如果我想能够添加值,例如我正在制作的21点游戏。我将不得不去掉套装符号,而我确保为人脸卡指定值“10”,并根据用户的选择为ace指定值“1”或“11”。