【问题标题】:Print index number of dictionary?打印字典的索引号?
【发布时间】:2017-11-04 03:04:23
【问题描述】:

我正在尝试从以下字典中严格提取索引号:

data = {0: {'GAME_ID': '0021600457', 'TEAM_ID': 1610612744}, 1: {'GAME_ID': 
'0021600457', 'TEAM_ID': 1610612744}, 2: {'GAME_ID': '0021600457', 'TEAM_ID': 
1610612744}

我希望能够做类似的事情

print(data[x])

并让它返回:

0

我确定这是我忽略的简单事情?

【问题讨论】:

  • 这里的X是什么?请详细说明问题
  • X 只是代表未知数。我更新了这个,以便字典被称为“数据”。我可以在“数据”旁边键入一些命令,以便打印第一个索引号吗?
  • 请给出x 的示例值以及输出结果。
  • 我没有针对此特定需求的示例。如果我想返回第一个 GAME_ID,我可以输入 print(data[0]['GAME_ID]) 并得到 '0021600457' 输入我需要输入什么才能让它返回代表第一条记录的“0”?
  • 您可以使用data.keys() 获取索引列表,但它们不会按任何特定顺序排列。如果它们看起来井井有条,那就是意外。

标签: python dictionary


【解决方案1】:

我认为您将索引号与键混淆了。 字典是这样组成的:

{key: value}

data.keys() 将返回一个键列表。 在你的情况下:

data.keys()
[0,1,2]

从那里,您可以调用第一项,即 0(列表中的第一项为 0,然后逐个递增)。

data.keys()[0]
0

如果您正在通过预定义值查找特定键,请尝试:

x = 'GAME_ID'
y = '0021600457'

for index_num, sub_dict in data.items():
    for eachsub_keys in sub_dict.keys():
        if eachsub_keys == x:
            print(index_num)

for index_num, sub_dict in data.items():
    for eachsub_values in sub_dict.values():
        if eachsub_values == y:
            print(index_num)

Output:
0
1
2

0
1
2

注意: python3 不再使用 .iteritems()

顺便说一句,你最后缺少一个花括号。应该是这样的:

data = {0: {'GAME_ID': '0021600457', 'TEAM_ID': '1610612744'}, 1: {'GAME_ID': '0021600457', 'TEAM_ID': '1610612744'}, 2: {'GAME_ID': '0021600457', 'TEAM_ID': '1610612744'}}

假设您想要一致性,我也添加了缺少的引号。

【讨论】:

  • 啊。好的。是的,我的术语不正确。谢谢!!
  • @GeorgeRodman 我已经扩展了我的答案以包括预定义的搜索。
【解决方案2】:

docs 中有关字典操作的更多信息。

这是你想要的?:

data = {0: {'GAME_ID': '0021600457', 'TEAM_ID': 1610612744},
        1: {'GAME_ID': '0021600457', 'TEAM_ID': 1610612744},
        2: {'GAME_ID': '0021600457', 'TEAM_ID': 1610612744}}

for key in data:
    print (key)

# Outputs:
0
1
2

如果您尝试迭代这些值:

data = {0: {'GAME_ID': '0021600457', 'TEAM_ID': 1610612744},
        1: {'GAME_ID': '0021600457', 'TEAM_ID': 1610612744},
        2: {'GAME_ID': '0021600457', 'TEAM_ID': 1610612744}}

for value in data.values():
    print (value)

# or

for key in data:
    print (data[key])

【讨论】:

    【解决方案3】:

    你能澄清一下你从哪里得到'x'吗?如果你想打印密钥,你可以这样做

    for i in dict:
        print(i)
    

    【讨论】:

    • 如果您没有代表发表评论,请不要将他们放入这样的“答案”中。
    猜你喜欢
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多