Добавить список целых в список списков целых - PullRequest
0 голосов
/ 30 марта 2019
h = [1, 2, 3, 2, 3, 3]

n = [[0], [0, 1], [0, 1, 2], [0], [0, 1], [0]]

Я хочу добавить каждое int в h к каждому списку в n, так что я получаю:

result = [[1], [2, 3], [3, 4, 5], [2], [3, 4], 3]]

Я потерпел неудачу с:

z = []
for i in h:
    for i2 in n:
        k = i + i2
        z.append(k)

Я понимаю, почему это не удается, но я не знаю, как двигаться вперед

Ответы [ 3 ]

2 голосов
/ 30 марта 2019

Вы можете использовать

z=[[z + x for z in y ]for x , y in zip(h,n)]
z
[[1], [2, 3], [3, 4, 5], [2], [3, 4], [3]]
1 голос
/ 30 марта 2019

Вы можете использовать новый массив результатов

result = []

for i in range(len(h)):
    intermediate = []
    for j in n[i]:
        intermediate.append(j + h[i])
    result.append(intermediate)
1 голос
/ 30 марта 2019
new_n = [[int_n+h[i] for int_n in list_n] for i,list_n in enumerate(n)]

Среди других решений.

Он не очень отличается от того, что вы пробовали, но использует более компактный синтаксис и использует enumerate () , который вы должны использовать каждый раз, когда выполняете цикл для какого-либо объекта, подобного списку

А то, что вы пытались, не работает, потому что, когда вы делаете:

for i2 in n:

i2 будет каждым списком в n, а не каждым целым числом, потому что n является списком списков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...