У меня есть проблема с правильной инициализации в спискеинициализации со списком питона
import random
a = [random.randint(0,1) for x in range(10)] # getting random 0 and 1
b = a[:] # copying 'a' list for purpose of analysis
for x,y in enumerate(b): # adding + 1 where value is 1
if y != 0:
b[x] += b[x-1]
print(a) # > [1, 0, 0, 1, 1, 1, 0, 0, 1, 1]
print(b) # > [2, 0, 0, 1, 2, 3, 0, 0, 1, 2]
# wanted # > [1, 0, 0, 1, 2, 3, 0, 0, 1, 2]
от а [1:] все в порядке. Python выполняет правильную инициализацию, однако если [0] == 1 и [9] == 1, Python of the course принимает значение [9] в качестве стартового значения в моем случае.
Я просто спрашиваю, есть ли какой-нибудь pythonic способ решить это> объяснение python, чтобы начать инициализацию от 0 до [0] и передачи [9] в качестве первого значения.
Благодаря
я не уверен точно, что вы просите. Ваш код выводит результат, который я ожидаю, и я думаю, что он соответствует вашему объяснению того, что вы хотите. Не могли бы вы уточнить, что именно не так, и предоставить то, что вы ожидаете от вывода? – wnnmaw
Проверьте код еще раз. Я добавил желаемый результат. – filtertips
Измените условие if на '' if y! = 0 и x! = 0' – hashcode55