Вложенные кортежи в списках

#python #nested #tuples

Вопрос:

У меня есть список списков кортежей, и мне трудно получить доступ к значениям внутри кортежей.

Примечание: приношу извинения за основной характер этого запроса, но я новичок, и мне требуется много времени, чтобы получить доступ к простым переменным.

 E.g: 

[[('foo', '-1')],[('bar', '-5'),('baz', ' 7')], [('qux', ' 9')]]
 

Я хочу 1) удалить второе значение каждого кортежа, т. е. числа, и 2) удалить тип кортежа и просто преобразовать его в список строк.

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

У меня возникли проблемы с 1) преобразованием каждого кортежа в строку, чтобы иметь возможность 2) удалить второе значение (желательно, чтобы я удалил его, прежде чем превращать его в строку) — есть идеи?

Ответ №1:

Просто получите 0 индексов каждого кортежа, выполнив итерацию в списке

 ll_tuple = [[('foo', '-1')],[('bar', '-5'),('baz', ' 7')], [('qux', ' 9')]]
print(
    [
        [tuple_[0] for tuple_ in l_tuple]
        for l_tuple in ll_tuple
    ]
)
 

Ответ №2:

Я не очень хорошо понимаю этот вопрос, но два момента:

  1. Ваши значения в кортеже уже являются строковыми.
  2. Чтобы получить доступ к кортежу, вы можете выполнить итерацию по списку и получить доступ к первому значению кортежа, выполнив это:
 tuple[0]
 

Я не понимаю, есть ли у вас список списка кортежей или список кортежей

Комментарии:

1. привет, это список списков кортежей

Ответ №3:

Прежде всего, ваш список списков вещей неправильно отформатирован, я предполагаю, что вы имеете в виду:

 data = [
    [('foo', '-1')],
    [('bar', '-5')],
    [('baz', ' 7'), ('qux', ' 9')]
]
 

При создании вложенного цикла for и добавлении первого элемента в каждом клубне в вывод нового списка.

 output = []
for lst in data:
   for tub in lst:
      output.append(tub[0])
print(output)
 

С принтами:

 ['foo', 'bar', 'baz', 'qux']