2016-05-18 3 views
0

В настоящее время я пытаюсь выяснить, как заполнить список одним заданным элементом, переопределив остальные элементы в списке. поэтому полностью заменяем каждый элемент в данном списке только одним элементом. Как заполнить список нулями, переписав все элементы в списке?Замена элементов и удаление всех элементов

для значений списка = [1,2,3,4,5] есть способ сделать это так, список значений = [0,0,0,0,0]

и есть способ удалить все элементы из списка? , поэтому для значений = [1,2,3,4,5] сделать это значениями []?

ответ

2
>>> x = [1, 2, 3] 
>>> x[:] = [0] * len(x) 
>>> x 
[0, 0, 0] 

Объяснение: левая сторона представляет собой срез по всем индексам, сопоставляя ломтики допускаются, а правая рука хорошим синтаксис для получения списка повторяющихся элементов.


На соответствующую записку, никогда не делать этого:

>>> a = [[0] * 5] * 5 
>>> a 
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] 

Потому что тогда такие вещи, как это будет происходить:

>>> a[0][0] = 3 
>>> a 
[[3, 0, 0, 0, 0], [3, 0, 0, 0, 0], [3, 0, 0, 0, 0], [3, 0, 0, 0, 0], [3, 0, 0, 0, 0]] 
+0

мне нравится! Smooth trick @Alex Hall – vikingben

+0

Значения индекса списка должны быть целыми? – expertinthemaking22

+0

@ expertinthemaking22 индексы являются целыми числами, значения (содержимое списка) могут быть любыми. –

-1

Чтобы заменить все элементы в списке с одной значение:

values = [0] * len(values) 

Это повторяет 0 столько раз, сколько необходимо для составления длины списка, а затем присваивает значение values. Do не использовать этот метод с изменяемым объектом, как пользовательский класс!


Чтобы очистить список, присвоить имя пустой список:

values = [] 
+0

'values ​​= ...' не изменяет исходный объект списка. – vaultah

+0

Нет, но он перезаписывает имя 'values' с пустым списком, который, по-видимому, запрашивает OP. Конечный результат тот же. Пожалуйста, поправьте меня, если я ошибаюсь. –

+0

Разница в том, что если я запускаю 'values_copy = values' перед вашим кодом, тогда' values_copy' останется в качестве исходного списка. –

0
  1. список понимание без функции - только замены элемента.
  2. использовать clear() или просто перезаписать новый пустой список, я думаю.

    x = [1, 2, 3] 
    [0 for elem in x] 
    x.clear() 
    
Смежные вопросы