Список на основе индекса, возвращающий элемент с n-м индексом

class IBList:

    maxlen = 100                        # pre-allocated size of list

    def __init__(self):
        self.r = 0                      # current size of list
        self.list = [0] * self.maxlen 

Как вернуть элемент по индексу r и вернуть строку "ошибка", если r < 0 или r > size - 1 и заменить на элемент e по адресу проиндексировать r и вернуть заменяемый элемент?

Можете ли вы привести пример входных и ожидаемых значений?

Alderven 07.02.2019 17:06
Почему в 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 может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
60
2

Ответы 2

Вы можете использовать лен (), чтобы получить длину списка. Также вы можете заменить значения из списка с помощью mylist[index] = new_value.

def my_func(lst, r, e):
    if r < 0 or r > len(lst)-1:
        return 'error'
    else:
        lst[r] = e
        return lst[r]

lst = [1, 2, 3, 4, 5]
r = 2
e = 22
print(my_func(lst, r, e))

Вот решение, разделяющее вашу проблему на две отдельные функции get_elem и elem_replace:

class IBList:
    maxlen = 100                        # pre-allocated size of list

    def __init__(self):
        self.r = 0                      # current size of list
        self.list = [0] * self.maxlen

    def get_elem(self,r):
        if r >= 0 and r <= len(self.list)-1:
            return self.list[r]
        else:
            return 'error'

    def elem_replace(self,r,e):
        elem = self.get_elem(r)
        if not elem == 'error':
            self.list[r] = e
            return elem
        else:
            return None # Handle this case any way you want.

спасибо, но у меня еще нет метода обучения try-except в моем syallbus, любого способа получить элемент с индексом r и вернуть ошибку в одном коде. Затем замените элемент e на индекс r и верните элемент, который заменяется, и верните строку «ошибка» в другом коде, если r<0 или r>size -1. оба в разных кодах?

Peter 08.02.2019 04:28

@Peter, извините за задержку с ответом, я обновил свой ответ, если вы хотите взглянуть.

Vasilis G. 08.02.2019 18:53

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