簡體   English   中英

從嵌套字典中打印出一個值

[英]Printing out a value from a nested dictionary

我是編程新手。

我正在嘗試打印嵌套字典中鍵的值。

ROOM = ""
ROOM_DESC = ""
ROOM_THIS = ""
ROOM_THAT = ""
ROOM_EXM = ""

randdict = {
  "a1": {
    ROOM: "room name",
    ROOM_DESC: "room desc",
    ROOM_THIS: "room this",
    ROOM_THAT: "room that",
    ROOM_EXM: "room exm",
  }
}

print(randdict["a1"][ROOM] + "\n" + randdict["a1"][ROOM_DESC] + "\n" + randdict["a1"][ROOM_THIS])

我期待的結果是:

room name
room desc
room this

相反,我得到的是:

room exm
room exm
room exm

不太確定那里出了什么問題,將不勝感激。

將您的密鑰更改為以下內容。

randdict = {
  "a1": {
    'ROOM' : "room name",
    'ROOM_DESC' : "room desc",
    'ROOM_THIS': "room this",
    'ROOM_THAT': "room that",
    'ROOM_EXM': "room exm",
  }
}


    print(f"{randdict['a1']['ROOM']} \n{randdict['a1']['ROOM_DESC']} \n{randdict['a1']['ROOM_THIS']}")

使用 ROOM、ROOM_DESC、ROOM_THIS、ROOM_THAT 和 ROOM_EXM 的不同值。 字典必須有唯一的鍵。

ROOM = "1"
ROOM_DESC = "2"
ROOM_THIS = "3"
ROOM_THAT = "4"
ROOM_EXM = "5"

randdict = {
  "a1": {
    ROOM: "room name",
    ROOM_DESC: "room desc",
    ROOM_THIS: "room this",
    ROOM_THAT: "room that",
    ROOM_EXM: "room exm",
  }
}

print(randdict["a1"][ROOM] + "\n" + randdict["a1"][ROOM_DESC] + "\n" + randdict["a1"][ROOM_THIS])

ROOM、ROOM_DESC、ROOM_THIS、ROOM_THAT 和 ROOM_EXM 都是“”。 這會導致字典被覆蓋,並且因為最后一個條目是 room exm 是被打印的(因為它沒有被覆蓋)。 如果您將房間變量切換為唯一的,它應該可以工作

這里的問題是所有變量 ROOM_* 都是相同的空字符串。 因此,您的字典僅使用最后一個鍵/值 ROOM_EXM:“room exm”創建。

您可以通過打印字典來檢查。

您應該為變量 ROOM_* 分配一些字符串。 甚至是這樣的:

ROOM = "ROOM"
ROOM_DESC = "ROOM_DESC"
ROOM_THIS = "ROOM_THIS"
ROOM_THAT = "ROOM_THAT"
ROOM_EXM = "ROOM_EXM"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM