Индексный список, возвращающий элемент по n-му индексу - PullRequest
0 голосов
/ 07 февраля 2019
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 и вернуть строку «error», если r < 0 или r > size - 1, заменить на элемент e с индексом r и вернуть элемент, которыйзаменяется?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Вот решение, разбивающее вашу проблему на две отдельные функции 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.
0 голосов
/ 07 февраля 2019

Вы можете использовать len () , чтобы получить длину списка.Кроме того, вы можете заменить значения из списка, используя 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...