Предположим, у вас есть list of tuples
, как это:
list_of_tuples =
[('11','12','13'),('21','22','23'),('31','32','33'),('41','42','43')]
Теперь я хочу нарезать этот список или кортежи, чтобы у меня был (новый) список только с первыми двумя записямикаждого кортежа.Итак, я хочу получить это:
new_list = [('11','12'),('21','22'),('31','32'),('41','42')]
Моей первой попыткой был некоторый синтаксис, такой как new_list = list_of_tuples[:][0:2]
.Первые скобки [:]
индексируют весь список, а [:2]
- элементы 0 и 1 каждого кортежа.Однако это всегда возвращает первые два кортежа, содержащие все три исходные записи .(Итак, я получаю [('11','12','13'),('21','22','23')]
).
Почему это не работает так, и каково здесь основное питоническое поведение?Я также отметил, что не имеет значения, как [:][:][:]
я пишу.
Один из способов получить желаемые результаты - написать такое понимание списка, как это new_list = [(t[0], t[1]) for t in list_of_tuples]
, но для этого требуется значительно больше кода, и я подумалМой оригинальный подход также питон.