У меня есть несколько списков объектов, которые я использую в различных функциях своего проекта, но сначала я должен их проанализировать, чтобы убедиться, что я использую правильные. Я делаю это в своей функции ниже. В настоящее время я использую условную проверку, поскольку в зависимости от расположения объектов в списке они могут иметь разную структуру. Мне любопытно, есть ли способ консолидировать функцию parse () и выполнять поиск в подсписке только в том случае, если условный оператор все еще выполняется.
items = [A,[B,C,D]]
def parse(type):
if type == 0:
# returns A
return items[0]
elif type == 1:
# returns B, C, or D
return items[1][random.randint(0,2)]
примерно так ...
items = [A,[B,C,D]]
def parse(type):
return items[type] if type == 1: [random.randint(0,2)]
Извините, обновлю вопрос.
Прошу прощения за комментарий немного циничный. Я не являюсь носителем английского языка. Я просто перечитал ваш вопрос около 5 раз и до сих пор не имею ни малейшего представления о том, что вы пытаетесь спросить. Возможно, вы могли бы попытаться полностью переформулировать свой вопрос (более простыми словами и с дополнительным контекстом), пожалуйста.
Похоже, что items[type] - это то, что вы ищете, и эта функция вам не нужна.






Вам не нужен elif. Вы проверяете одно условие, а затем делаете совершенно другое, независимо от того, что, если это не то условие.
items = [A,[B,C,D]]
def parse(type):
if type == 0:
# returns A
return items[0]
# returns B, C, or D
return items[1][random.randint(0,2)]
Я предполагаю, что это то, что вы имели в виду под консолидацией
items = [A, [B, C, D]]
def parse(items, index):
item = items[index]
if type(item) is not type(list()):
return item
else
return item[random.randint(0, len(item))]
Вы также должны явно передать items вместо того, чтобы использовать его как глобальную переменную. используйте index вместо type, поскольку он встроен (отмечен @Wyrmwood)
def parse(items, index):
if isinstance(items[index], list):
return random.choice(items[index])
else:
return items[index]
не переопределять встроенные функции (в данном случае введите)
Массив и список - это не одно и то же. Вы используете список.