Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 20, 2018 14:36:13

Nastya99
Зарегистрирован: 2018-10-01
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление элементов списка по условию

Здравствуйте, помогите, пожалуйста, проблема с удалением элементов
Задание: определить индексы элементов списка, значения которых принадлежат заданному диапазону (т.е. не меньше заданного минимума и не больше заданного максимума) и после того, как элемент с подходящим значением добавлен в новый список – удалять его из исходного списка. Использовать цикл while , функцию len()

 import random
arr = []
for i in range(20):
	x = int(random.random()*10)  
	arr.append(x)
	print("%3d" % x, end='')
	if (i+1) % 10 == 0:	print()
 
minimum = int(input('min: '))
maximum = int(input('max: '))
 
index = []
i = 0
for i in arr:
	if minimum <= i <= maximum:
		index.append(arr.index(i))
print("Количество: ", len(index))
print("Индексы: ", index)
b=[]
while i < len(arr):
    if 0 <= i <= 3:
        b.append(arr[i])
        del arr[i]
    else:    
        i += 1
print(b)
print("Обновлённый список", arr)	

Офлайн

#2 Окт. 20, 2018 15:02:00

vic57
Зарегистрирован: 2015-07-07
Сообщения: 913
Репутация: +  127  -
Профиль  

Удаление элементов списка по условию

удалять из списка по индексу в цикле надо с конца списка

 >> from random import random
>>> arr = [random()*10 for i in range(20)]
>>> maximum = 3
>>> minimum = 1
>>> idx = []
>>> for i in range(len(arr)):
	if minimum <= arr[i] <= maximum:
		idx.append(i)
		
>>> b = []
>>> for i in idx[::-1]:
	b.append(arr.pop(i))
	
>>> arr
[0.9997039496185745, 9.81926025788244, 9.477564320403783, 7.450097326783579, 6.094295705798772, 7.734353608549047, 8.333309706804087, 7.21116767923487, 9.380447222892135, 5.827521089174189, 3.5512566930962883, 6.3334419066820065, 4.7993305481483715, 9.726051881867546]
>>> b
[2.0952664916873065, 2.6867601021370313, 1.0712025352806398, 2.435998309532165, 1.5388566029618522, 1.1291303356074822]
>>> 

Отредактировано vic57 (Окт. 20, 2018 15:13:12)

Офлайн

#3 Окт. 20, 2018 15:45:52

Nastya99
Зарегистрирован: 2018-10-01
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление элементов списка по условию

vic57 большое спасибо

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version