Python удалить минимальное значение - PullRequest
0 голосов
/ 21 мая 2019

Это мой псевдокод, который мне нужно перевести на python

A=99
LENGTH= LENGTH(list)
LIST= 92 50 26 82 73 
for P in range 0 to LENGTH-1
    IF LIST[P] <A THEN
        A=LIST[P]
        B=P
    ENDIF
ENDFOR
IF B < LENGTH THEN
    for P in range B to LENGTH -2
        LIST[P] = LIST[P+1]
    ENDFOR
ENDIF
LENGTH=LENGTH-1
LIST[LENGTH]=NULL

Моя попытка кодирования сделана ниже, код предназначен для удаления самого низкого значения из списка

a = 99
list=[92,50,26,82,73]

for  p in  range  (0,len(list) - 1):
    if list[p] < a :
        a = list[p] 
        b = p 

print (list) #I just added this to see what was happening

if  b < len(list):
    for p in range (b,len(list)-2):
        list[p]=list[p]+1

list=len(list)-1

print (list)
#I just added this to see what was happening

Я написал код выше, и он не удаляет самое низкое значение

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

Вы действительно близко, вот исправления:

A = 99

l = [92, 50, 26, 82, 73]

LENGTH = len(l)

for P in range(LENGTH):
    if l[P] < A:
        A=l[P]
        B=P

if B < LENGTH:
    for P in range (B, LENGTH - 1):
        l[P] = l[P+1]


LENGTH=LENGTH-1
l[LENGTH]=None

Теперь попробуйте:

print(l) # [92, 50, 82, 73, None]

Примечание: LENGTH-1 и LENGTH-2 изменены на LENGTH иLENGTH-1 потому что Python использует индексирование на основе 0.

0 голосов
/ 21 мая 2019
  • первый список - неверное имя переменной. это уже имеет значение в Python.
  • для перебора элементов списка просто выполните
for item in items:
    # use item. 
  • если вы хотите индекс также
for idx in range(len(items)):   # no need for -1
    # use items[idx] 
  • Ваш Солнце
minval = min(items)
new_items = []
for item in items:
    if item != minval:
        new_items.append(item)

# new items has the answer

...