2015-10-10 1 views
1

Как взять список номеровСоздайте цикл для изменения ints в списке на другой int?

numList = [] 

while len(numList) <= 1000: 
    numList.append(1) 

while len(numList) <= 1000: 
    numList.append(0) 

print(numList) 

Теперь, как бы я идти об изменении тех 0?

A for loop?

+0

Вы просто хотите получить список из 1000 элементов значения '0'? Попробуйте 'numList = [0] * 1000' – Jason

+2

Ваш второй цикл * while * никогда не будет запущен, потому что' len (numList) == 1000' после первого цикла – styvane

ответ

2

Вы не меняете первый набор элементов, которые вы добавляете. Смотрите комментарий я добавил в код:

numList = [] 

while len(numList) <= 1000: 
    numList.append(1) 

# the numList is already a thousand elements long, so the while loop 
# body is NEVER executed. 
while len(numList) <= 1000: 
    numList.append(0) 

Попробуйте вместо этого:

numList = [] 

while len(numList) <= 1000: 
    numList.append(1) 

for i in range(0, 1000): 
    numList[i] = 0 

print(numList) 
+0

Это то, что я искал. Работает цикл for. Я не знал, как это выполнить. Большое спасибо. Я просто использовал len (numList) вместо 1000. Еще раз спасибо. – Casey

+0

"* Я просто использовал len (numList) вместо 1000 *" - это еще лучше. Хорошая работа. – kdbanman

0

Изменить то, что вы добавляется к нему:

while len(numList) <= 1000: 
    numList.append(0) 

Если вы не изменяете существующий массив [1, 1, 1, ...] в [0, 0, 0, ...] в этом случае вы можете воспользоваться пониманием списка:

numList = [0 for x in range(len(numList))] 
+0

Он по-прежнему печатает [1,1,1,1,1,1 , 1,1] ... Вот почему я застрял – Casey

+0

Тогда вы не используете его правильно. Если нет вхождений 1, у него не должно быть 1. – ergonaut

+0

@Casey, пожалуйста, покажите нам код, который «все еще печатает [1, 1, ...» – kdbanman

0

Другой способ сделать это, более ясно;

numList = [1,2,3,4,5] 
t = lambda x: [0 for x in numList] 
print (t(numList)) 

Результат;

>>> 
[0, 0, 0, 0, 0] 
>>>