Как хранить пары ключ-значение - PullRequest
0 голосов
/ 17 июня 2019

Я хочу хранить пары ключ-значение, но не знаю, как это сделать.

То, чего я хочу добиться, - это переменная, в которой будут храниться разные пары значений.

Я бы хотел что-то вроде этого:

dic = {}
valuepair = (2,3), "cell1"

Каждая пара значений уникальна, и я хотел бы иметь возможность сделать что-то вроде этого:

dic[(2,3)] = "cell1"
dic["cell1"] = (2,3)

Есть ли способ достичь чего-то подобного для множества различных уникальных пар значений?

Ответы [ 3 ]

1 голос
/ 17 июня 2019

Если вы спросите, можете ли вы использовать кортеж в качестве ключа - да, например:

dic[(2,3)] = "cell1"

print(dic[(2,3)]) 

будет показывать cell1

или создайте обратный дикт, как это:

inverse_d = {v:k for key, value in d}
0 голосов
/ 17 июня 2019

Вы всегда можете сделать это, но зачем вам это все еще вопрос.

valuepairs = [[(2,3), "cell1"], [(4,5), "cell2"]]

dic = {}
for x, y in valuepairs:
    dic[x] = y
    dic[y] = x

print(dic)
# {(2, 3): 'cell1', 'cell1': (2, 3), (4, 5): 'cell2', 'cell2': (4, 5)}
0 голосов
/ 17 июня 2019

Пара ключ-значение означает ключ, сопоставленный со значением.И то, что вы делаете, правильно, но если у вас есть ключ, вы можете получить ценность от него.Таким образом, вам не нужно хранить значение ("cell1"), опять же, как ключ, когда оно уже является значением.Извините, если я не получу ваш вопрос.Или вы можете сделать это тоже:

x = [("k1","v1"),("k2,"v2")]
d = dict(x)
print(d)

ВЫХОД: {"k1": "v1", "k2": "v2"}

...