Python Array со строковыми индексами - PullRequest
57 голосов
/ 22 сентября 2010

Можно ли использовать строки в качестве индексов в массиве в Python?

Например:

myArray = []
myArray["john"] = "johns value"
myArray["jeff"] = "jeffs value"
print myArray["john"]

Ответы [ 2 ]

129 голосов
/ 22 сентября 2010

То, что вы хотите, называется ассоциативный массив .В Python они называются словарями .

. В других языках словари иногда встречаются как «ассоциативные воспоминания» или «ассоциативные массивы».В отличие от последовательностей, которые индексируются диапазоном чисел, словари индексируются ключами, которые могут быть любого неизменного типа ;строки и числа всегда могут быть ключами.

myDict = {}
myDict["john"] = "johns value"
myDict["jeff"] = "jeffs value"

Альтернативный способ создания вышеуказанного слова:

myDict = {"john": "johns value", "jeff": "jeffs value"}

Доступ к значениям:

print myDict["jeff"] # => "jeffs value"

Получение ключей (в Python v2):

print myDict.keys() # => ["john", "jeff"]

Если вы хотите узнать о внутренностях словаря Python, я рекомендую это ~ 25-минутное видео-представление: https://www.youtube.com/watch?v=C4Kc8xzcA68. Оно называется «Могучий словарь».

4 голосов
/ 22 сентября 2010

Еще лучше, попробуйте OrderedDict (при условии, что вы хотите что-то вроде списка).Ближе к списку, чем обычный dict, поскольку ключи имеют порядок так же, как элементы списка имеют порядок.При обычном dict ключи имеют произвольный порядок.

Обратите внимание, что это доступно в Python 3 и 2.7.Если вы хотите использовать более раннюю версию Python, вы можете найти для этого устанавливаемые модули.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...