Python: конкретное значение в именованном кортеже из списка кортежей - PullRequest
0 голосов
/ 07 мая 2018

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

1. List[i][j]
2.   list2[x][y]
3.      list3[z][w]
4.         etc.

Я бы хотел сделать что-то вроде этого:

str( list[i][0 [0][2 [0][0]] )

Получить значение по индексам 0,0 в кортеже по индексам 0,2 списка по индексам i, 0 основного списка.

Edit: Извините, я учусь. Консоль возвращает это:

    [Record(items=set({'item1','item2'}),
            id=6439,
            stats=[OrderedStatistic(items_b=set({'item2'}),
                                    items_a=set({'item1'}),
                                    row=123,
                                    col=321)]),
     Record(... 

Я ищу значение "строка". Я не знал, что у него есть имя, оно не было показано в моем зрителе.

Редактировать 2:

Улучшение. Это работает, но я использую временную переменную, потому что oldList[0].stats[0].row возвращает 'stats' object has no attribute row.

for i in range(0, len(oldList)):
    tmpList = oldList[i][2]
    newList.append('ID:\t' + str(oldList[i][1])+ '\nROW:\t' + str(tmpList[0][2])

или

for i in range(0, len(oldList)):
    tmpList = oldList[i][2]
    newList.append('ID:\t' + str(oldList[i][1])+ '\nROW:\t' + str(tmpList[0].row)

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Простым способом для примера lst = [[('a', 'b', 'c'), ('d', ('e1' , 'e2'), 'f')]] можно использовать lst[0][1][1][1] для достижения e2, но я представляю, что у вас есть индексы в массиве, подобном ind_array. в этом случае вам, возможно, придется сделать что-то вроде этого:

ind_array = [0, 1, 1, 1]
desired_value = lst
for i in o :
    try:
        desired_value = desired_value[i]
     except IndexError:
         print('index not found.')
         break
 print(desired_value)

Дайте мне знать, если у вас проблема с ответом или у вас будут другие индексы.

0 голосов
/ 07 мая 2018

Синтаксис в этом случае будет следующим:

print(lst[i][0][0][2][0][0])

Эта вложенная структура - это больше, чем просто список списков кортежей. Если бы это было так, то следующий минимальный список примеров мог бы иметь ссылку 'a' с простой lst[0][0][0]:

lst = [[('a', 'b', 'c'), ('d', 'e', 'f')]]
...