Переназначение фрагмента одной строки - PullRequest
0 голосов
/ 24 мая 2018

Как показано в следующем коде, у меня есть список чанков x и полный список h.Я хочу переназначить значения, хранящиеся в x, в правильные позиции h.

index = 0
for t1 in range(lbp, ubp):
   h[4 + t1] = x[index]
   index = index + 1

Кто-нибудь знает, как записать его в одну строку / выражение ?

Отказ от ответственности: это часть более крупного проекта, и я максимально упростил вопросы.Вы можете ожидать, что размеры матрицы будут правильными, но если вы думаете, что я что-то упустил, пожалуйста, попросите об этом.Для тестирования вы можете использовать следующие значения переменных:

h = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
x = [20, 21]
lbp = 2
ubp = 4

1 Ответ

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

Вы можете использовать назначение среза, чтобы расширить его с левой стороны и назначить свой список x непосредственно индексам h, например:

h = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
x = [20, 21]
lbp = 2
ubp = 4     
h[4 + lbp:4 + ubp] = x  # or better yet h[4 + lbp:4 + lbp + len(x)] = x
print(h)
# [1, 2, 3, 4, 5, 6, 20, 21, 9, 10]

Я не совсем уверен, почемуВы добавляете 4 к индексам в вашем цикле, а также то, что lbp и ubp должны означать, хотя.Помните, что когда вы выбираете такой диапазон, список, который вы назначаете диапазону, должен иметь ту же длину, что и диапазон.

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