Условный доступ к элементам массива - PullRequest
0 голосов
/ 14 мая 2018

У меня есть вектор данных data = [x for x in range(0,999)], что я хочу сделать, чтобы получить доступ к элементам в data в соответствии с заданным value, например, если value=10 доступ к 0-му индексу data и если value=20доступ к 1-му индексу data.Предполагается, что это будет что-то вроде этого:

def get_data(value):
if value ==10:
    return data[0]
elif value == 20:
    return data[1]
elif value ==30:
    return data[2]

Но в действительности у меня будут действительно большие данные, и я не могу продолжать ставить заявления elif.Есть ли эффективный способ сделать это?

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Вы можете использовать словарь для решения вашей проблемы.

def get_data(value):
     return {
         10: data[0],
         20: data[1],
         30: data[2]
     }.get(value, data[3])   #data[3] will be the default value.
0 голосов
/ 14 мая 2018

Одним из подходов может быть деление value на 10, а затем просто вычесть 1 из результата.

return data[value//10 - 1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...