#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:
Я не очень хорошо понимаю этот вопрос, но два момента:
- Ваши значения в кортеже уже являются строковыми.
- Чтобы получить доступ к кортежу, вы можете выполнить итерацию по списку и получить доступ к первому значению кортежа, выполнив это:
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']