#python
#питон
Вопрос:
В настоящее время пытаетесь напечатать первую запись alphabet_numbers.items (a, 1)?
alphabet_numbers = {'a': '1', 'b': '2', 'c': '3', 'd' : '4', 'e': '5' } tuple1 = alphabet_numbers.items() print(tuple1[0,0])
как можно напечатать только первую запись tuple1?
Если положить print(tuple1)
, я получу:
dict_items([('a', '1'), ('b', '2'), ('c', '3'), ('d', '4'), ('e', '5')])
Комментарии:
1.
tuple1
вероятно, это не лучшее название для этой переменной. Но в любом случае, вы могли бы сделать либоlist(tuple1)[0]
илиnext(iter(tuple1))
. Первый, вероятно, легче понять, но второй использует меньше памяти, если вы начали с большого словаря.2. Составьте список:
tuple1 = list(alphabet_numbers.items())
?3. Я полагаю, очевидный вопрос таков: если вы хотите получить доступ к этим данным по числовому индексу, как к упорядоченной коллекции, почему бы вам не создать упорядоченную коллекцию, подобную списку? Хотя словари теперь сохраняют порядок ключей, они не предназначены для упорядоченного доступа. Вот почему вам нужно перепрыгнуть через эти обручи, чтобы сделать это.
Ответ №1:
Его можно явно преобразовать в список:
alphabet_numbers = {'a': '1', 'b': '2', 'c': '3', 'd': '4', 'e': '5' } tuple1 = list(alphabet_numbers.items()) print(tuple1[0][0]) print(list(alphabet_numbers.keys())[0])
Или используйте функцию keys
, если вас интересует только первый ключ.
Функция items
возвращает не список, а представление, подобное объекту. Проверка типов mypy
показывает тип с помощью reveal_type(tuple1)
оригинального примера:
typing.ItemsView[builtins.str*, builtins.str*]
Ответ №2:
first_entry = list(alphabet_numbers.items())[0]
Вы можете распечатать первую запись, и она выведет кортеж.