【问题标题】:Iterate each value in the first list [] over another list [] to form dictionary {}将第一个列表 [] 中的每个值迭代到另一个列表 [] 上以形成字典 {}
【发布时间】:2019-02-06 14:46:00
【问题描述】:

两个列表如下

花色 = [“红心”、“钻石”、“梅花”、“黑桃”]

= ['A','2','3','4','5','6','7','8','9',' 10','J','Q','K']

我想创建一个字典如下

卡片 = {“红心”:“A”,“红心”:“2”,“红心”:“3”......}

suits 中的每个项目都应与 values 列表中的所有项目进行迭代。我尝试使用 {}.Fromkeys() 但没有成功。

请帮忙。谢谢

【问题讨论】:

  • 不可能。字典键在 Python 中是唯一的。你想用这样的字典来完成什么?

标签: python python-3.x


【解决方案1】:

您正在尝试创建一个字典,其中同一个键多次出现,这是不允许的。

相反,你可以有类似的东西:

Cards = {"Hearts" : ['A','2',...,'K'], "Diamonds": ['A','2',...,'K'], ......}

代码如下:

suits = ["Hearts", "Diamonds", "Clubs", "Spades"] 
values = ['A','2','3','4','5','6','7','8','9','10','J','Q','K']
cards = {}

for suit in suits:
    cards[suit] = values

【讨论】:

  • 非常感谢。我明白了。
【解决方案2】:

按照您的意愿进行操作会产生一个字典,其中一个键具有多个值。

如果您想要一个包含列表所有可能组合的表格,您可以在其中过滤“套装”或“值”,您可以将其写入 pandas.DataFrame:

Suits = ["Hearts", "Diamonds", "Clubs", "Spades"]
values = ['A','2','3','4','5','6','7','8','9','10','J','Q','K']
both = [(onesuit,onevalue) for onesuit in Suits for onevalue in values]

import pandas as pd
pd.DataFrame(both, columns=['Suits', 'values'])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    相关资源
    最近更新 更多