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

Доступ к элементу в списке списков

Если у меня есть список списков и просто хочу управлять отдельным элементом в этом списке, как бы я это сделал?

Например:

List1 = [[10,13,17],[3,5,1],[13,11,12]]

Что делать, если я хочу взять значение (скажем, 50) и посмотреть только на первый подсписчик в List1 и вычесть 10 (первое значение), а затем добавить 13, а затем вычесть 17?

4b9b3361

Ответ 1

Вы можете получить доступ к элементам в списке списков, указав сначала, какой список вам интересен, и затем указать, какой элемент этого списка вы хотите. Например, 17 - это элемент 2 в списке 0, который list1[0][2]:

>>> list1 = [[10,13,17],[3,5,1],[13,11,12]]
>>> list1[0][2]
17

Итак, ваш пример будет

50 - list1[0][0] + list1[0][1] - list1[0][2]

Ответ 2

Вы можете использовать itertools.cycle:

>>> from itertools import cycle
>>> lis = [[10,13,17],[3,5,1],[13,11,12]]
>>> cyc = cycle((-1, 1))
>>> 50 + sum(x*next(cyc) for x in lis[0])   # lis[0] is [10,13,17]
36

Здесь выражение генератора внутри sum будет возвращать что-то вроде этого:

>>> cyc = cycle((-1, 1))
>>> [x*next(cyc) for x in lis[0]]
[-10, 13, -17]

Вы также можете использовать zip здесь:

>>> cyc = cycle((-1, 1))
>>> [x*y for x, y  in zip(lis[0], cyc)]
[-10, 13, -17]

Ответ 3

List1 = [[10,-13,17],[3,5,1],[13,11,12]]

num = 50
for i in List1[0]:num -= i
print num

Ответ 4

50 - List1[0][0] + List[0][1] - List[0][2]

List[0] дает вам первый список в списке (попробуйте print List[0]). Затем вы индексируете его снова, чтобы получить элементы этого списка. Подумайте об этом так: (List1[0])[0].

Ответ 5

for l in list1:
    val = 50 - l[0] + l[1] - l[2]
    print "val:", val

Прокрутите список и выполните операцию над подсписком, как вы хотели.

Ответ 6

Этот код будет печатать каждый отдельный номер:

for myList in [[10,13,17],[3,5,1],[13,11,12]]:
    for item in myList:
        print(item)

Или для вашего конкретного варианта использования:

((50 - List1[0][0]) + List1[0][1]) - List1[0][2]