как перебрать список, содержащий несколько списков и кортежей - PullRequest
0 голосов
/ 02 мая 2019

Перебирать список, содержащий несколько списков и кортежей

pixel_coord=[]

[[(7261, 8764), (7288, 8764)], [(4421, 8937), (4448, 8937)]

увеличение 7261 на 7, уменьшение 7288 на 7 для всего списка.

Я пробовал перебирать список, но не знаю, как продолжить

for p in range(len(pixel_coord)):
for i in range(4):
    print( pixel_coord[p][i][0] + 1)
    print( pixel_coord[p][i][1] - 1)
    i+=1
p+=1

Ответы [ 3 ]

1 голос
/ 02 мая 2019

Использование простой итерации & enumerate

Ex:

lst = [[(7261, 8764), (7288, 8764)], [(4421, 8937), (4448, 8937)]]
result = []
for i in lst:
    temp = []
    for ind, (x,y) in enumerate(i):
        if ind == 0:
            temp.append((x+7, y))
        else:
            temp.append((x-7, y))
    result.append(temp)

print(result)

Выход:

[[(7268, 8764), (7281, 8764)], [(4428, 8937), (4441, 8937)]]
0 голосов
/ 02 мая 2019

Вот как вы можете просмотреть список списков кортежей:

  temp = []
  for outerListIndex in range(len(pixel_coord)):
     for innerListIndex in range(len(pixel_coord[outerListIndex])):
        tupleElement1 = pixel_coord[outerListIndex][innerListIndex][0]
        tupleElement2 = pixel_coord[outerListIndex][innerListIndex][1]

        # Do your operations on the elements here
        temp.append( (tupleElement1 + 7, tupleElement2 - 7) )

  pixel_coord = temp

Как только вы правильно назовете переменные, ваш код станет намного проще для понимания.

0 голосов
/ 02 мая 2019
a= [[(7261, 8764), (7288, 8764)], [(4421, 8937), (4448, 8937)]]

def fun(a):
    k=[]
    for i in range(len(a)):
        if i%2==0:
            tmp=(a[i][0]+7,a[i][1])
            k.append(tmp)
        elif i%2==1:
            tmp=(a[i][0]-7,a[i][1])
            k.append(tmp)
    return k

sol= list(map(lambda x:fun(x), a))
print(sol)

выход

[[(7268, 8764), (7281, 8764)], [(4428, 8937), (4441, 8937)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...