Можно ли использовать строки в качестве индексов в массиве в python?
Например:
myArray = []
myArray["john"] = "johns value"
myArray["jeff"] = "jeffs value"
print myArray["john"]
Можно ли использовать строки в качестве индексов в массиве в python?
Например:
myArray = []
myArray["john"] = "johns value"
myArray["jeff"] = "jeffs value"
print myArray["john"]
То, что вы хотите, называется ассоциативным массивом. В 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 3 вы получите dict_keys
, который является представлением и немного более эффективным (подробности см. в представлении документов и PEP 3106).
print(myDict.keys()) # => dict_keys(['john', 'jeff'])
Если вы хотите узнать о внутренностях словаря Python, я рекомендую эту ~ 25-минутную видеопрезентацию: https://www.youtube.com/watch?v=C4Kc8xzcA68. Он называется "Могучий словарь".
Еще лучше, попробуйте OrderedDict (предполагая, что вы хотите что-то вроде списка). Ближе к списку, чем обычный dict, поскольку ключи имеют порядок, так же как элементы списка имеют порядок. С помощью обычного dict ключи имеют произвольный порядок.
Обратите внимание, что это доступно в Python 3 и 2.7. Если вы хотите использовать более раннюю версию Python, вы можете найти устанавливаемые модули для этого.