Подтвердить что ты не робот

Доступ к значению в кортеже, который находится в списке

[(1,2),(2,3),(4,5),(3,4),(6,7),(6,7),(3,8)]

Как вернуть 2-е значение из каждого кортежа внутри этого списка?

4b9b3361

Ответ 1

Со списком.

[x[1] for x in L]

Ответ 2

Ответ Игнасио - это то, что вы хотите. Однако, поскольку кто-то также изучает Python, позвольте мне попытаться проанализировать его для вас... Как уже упоминалось, это понимание списка (описано в DiveIntoPython3, например). Вот несколько моментов:

[x[1] for x in L]

  • Обратите внимание на [] вокруг строки кода. Это то, что определяет список. Это говорит о том, что этот код возвращает список, поэтому он имеет тип list. Следовательно, этот метод называется "пониманием списка".
  • L - ваш первоначальный список. Поэтому перед выполнением вышеуказанного кода вы должны определить L = [(1,2),(2,3),(4,5),(3,4),(6,7),(6,7),(3,8)].
  • x - это переменная, которая существует только в понимании - попробуйте получить доступ к x вне понимания или введите type(x) после выполнения указанной выше строки и сообщит вам NameError: name 'x' is not defined, тогда как type(L) возвращает <class 'list'>.
  • x[1] указывает на второй элемент в каждом из кортежей, тогда как x[0] будет указывать на каждый из первых элементов.
  • Итак, эта строка кода буквально читает "вернуть второй элемент в кортеж для всех кортежей в списке L".

Трудно сказать, насколько вы пытались решить проблему до того, как задали вопрос, но, возможно, вы просто не были знакомы с пониманием? Я потратил бы некоторое время на чтение Глава 3 DiveIntoPython или любой ресурс на понимание. Удачи.

Ответ 3

Постижение списка - это абсолютно способ сделать это. Другой способ, который должен быть быстрее, - map и itemgetter.

import operator

new_list = map(operator.itemgetter(1), old_list)

В ответ на комментарий, что OP не смог найти ответ на google, я укажу наивысший способ сделать это.

new_list = []
for item in old_list:
    new_list.append(item[1])

Это использует:

  • Объявление переменной для ссылки на пустой список.
  • A для цикла.
  • Вызов метода append в списке.

Если кто-то пытается выучить язык и не может собрать эти основные части для себя, тогда они должны рассматривать его как упражнение и делать это сами, даже если ему требуется двадцать часов.

Нужно научиться думать о том, что нужно, и сравнить с доступными инструментами. Каждый элемент моего второго ответа должен быть рассмотрен в базовом учебном пособии. Вы не можете научиться программировать без чтения.

Ответ 4

Могу я предложить:

Нормальные Matloff Quick Python Tutorials

Перейдите в раздел "Кортежи". У вас будет свой ответ, а также превосходное руководство по изучению основ Python.