Я не могу создать словарь с символом # внутри ключа - PullRequest
0 голосов
/ 04 ноября 2018

Я хотел сделать словарь, который будет выглядеть так:

example = dict(C# = "o.ooo.")

Из-за того, что есть символ «#», все остальное выпадает.

Я знаю, что могу решить эту проблему следующим образом:

test = [("C#"), ("o.ooo.")]
example = dict(test)

Мне было интересно, есть ли что-то, что могло бы решить мою проблему, например:

example = dict(r(C#) = "o.ooo.") - which obviously doesn't work.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

Как и в других языках программирования, в Python есть несколько способов повторного использования одного и того же кода в разных положениях программы. Одним из них является концепция функции (называемая процедурой на тех же языках), которую мы можем классифицировать по типу аргументов / параметров в:

Параметры позиционной функции

В этой категории значение параметра присваивается положением. Так что, если у нас есть следующее определение функции

def newLengths(bridge1,bridge2,bridge3):
    #updating lengths

и мы называем это так newLenghts(1200,1001,1110) параметр bridge2 примет значение 1001 метров, потому что он был во второй позиции.

Именованные / Ключевые слова Python Функциональные параметры

В этом случае мы явно сообщаем python, какой переменной мы хотим присвоить значение, а не давайте неявно определять по позиции. Так что теперь для предыдущей функции мы можем сделать newLenghts(1200,bridge2 = 1001, 1110). Этот способ использования именованных параметров полезен в различных ситуациях, особенно для значений параметров по умолчанию, если они не указаны. Важной частью параметров ключевого слова является тот факт, что ключевое слово должно быть допустимым идентификатором переменной в Python, чтобы его можно было использовать примерно так, иначе Python будет думать, что это что-то другое, например число и так далее. В вашем случае вы пытаетесь использовать # , которые имеют специализацию комментария и не могут быть объединены для создания идентификатора. Таким образом, я могу сказать, что нет никакого способа использовать хэштег, если вы не измените синтаксис Python, так что это допустимый символ для имени переменной.

Однако есть несколько способов создать клавишу "C #":

  • Используйте строку прямо как ключ в словаре {"C#":"O.OOO."}
  • Создайте итерируемый объект и передайте его при вызове dict ()

Самый простой способ сделать итерацию для этого - использовать функцию zip (), которая берет два списка и объединяет их один элемент первого списка с элементом в той же позиции второго списка.

keys = ["C#","Java","Python"]
values = ["Book1","Book1","Book0"]
example = dict(zip(keys,values))
0 голосов
/ 04 ноября 2018

Передача ключевых слов во встроенную функцию dict() здесь проблематична, поскольку # в вашем ключе неверно истолковано как начало комментария.

Вместо этого используйте буквальный синтаксис:

example = {"C#": "o.ooo."}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...