Как заменить все элементы в списке одной переменной

nums = [1,2,3,4,5,6]
replace = 1

for x in nums:
    x = replace
    print(x)

Как я могу заменить все nums на 1:

nums = [1,1,1,1,1,1]

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
68
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий

Если число (в данном случае 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

Не используйте это для вложенных списков, хотя stackoverflow.com/questions/240178/… :-)

U13-Forward 26.12.2020 12:08

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)

второй метод крайне нежелателен.

juanpa.arrivillaga 26.12.2020 12:11

Спасибо, я изменил второй mtd.

ketan gangal 26.12.2020 12:20

Другие вопросы по теме