Если число (в данном случае 1
) известно, просто переназначьте его следующим образом:
replace = 1
nums = [replace]*len(nums)
Это намного быстрее, чем итерация, как предлагается в других ответах, в случае слишком большого количества чисел.
>>> start=time.time(); a = [1 for _ in range(1000000)]; print(time.time() - start)
0.039171695709228516
>>> start=time.time(); a = [1] * 1000000; print(time.time() - start)
0.0036449432373046875
x=replace
заменяет итератор, а не значение в списке, поэтому попробуйте использовать list
понимание:
nums = [replace for x in nums]
print(nums)
Выход:
[1, 1, 1, 1, 1, 1]
Помимо nums=[1,1,1,1,1,1]
, есть несколько способов:
nums = [1,2,3,4,5,6]
replace = 1
for index,_ in enumerate(nums):
nums[index] = replace
Попробуй это:
nums = [1,2,3,4,5,6]
replace=1
nums=[replace]*len(nums)
Если вы хотите использовать цикл, вы можете сделать следующее:
nums=[1,2,3,4,5,6]
replace=1
for i in range(len(nums)):
nums[i]=replace
>>> print(nums)
[1, 1, 1, 1, 1, 1]
дайте мне знать, если у вас есть другие вопросы.
Первый МТД:-
nums = [1,2,3,4,5,6]
replace = 1
nums = list(map(lambda x : replace,nums))
второй MTD:-
nums = [1,2,3,4,5,6]
replace = 1
nums = [replace for i in range(len(nums))]
print(nums)
второй метод крайне нежелателен.
Спасибо, я изменил второй mtd.
Не используйте это для вложенных списков, хотя stackoverflow.com/questions/240178/… :-)