Python-如果满足条件,则获取列表的子列表
我有一些我在项目的不同功能中使用的对象列表,但首先我必须解析它们以确保使用正确的对象。我在下面的函数中这样做。目前我使用的是条件检查,因为根据列表中对象的位置,它们可能位于不同的结构中。我很好奇,如果仍然满足条件语句,是否还有合并parse()函数和只在子列表中搜索的方法Python-如果满足条件,则获取列表的子列表,python,arrays,list,Python,Arrays,List,我有一些我在项目的不同功能中使用的对象列表,但首先我必须解析它们以确保使用正确的对象。我在下面的函数中这样做。目前我使用的是条件检查,因为根据列表中对象的位置,它们可能位于不同的结构中。我很好奇,如果仍然满足条件语句,是否还有合并parse()函数和只在子列表中搜索的方法 items = [A,[B,C,D]] def parse(type): if type == 0: # returns A return items[0] elif type
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)]
您不需要
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)]
我假设这就是您所说的整合您不需要
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))]
我假设这就是您所说的合并的意思,您还应该显式地传入
项
,而不是将其用作全局变量。使用索引
而不是类型
,因为它是内置的(由@Wyrmwood注释)
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))]
您还应该显式地传入
项
,而不是将其用作全局变量。使用索引
而不是类型
,因为它是内置的(由@Wyrmwood注释)
数组和列表不是一回事。您使用的是列表。抱歉,我将更新问题。请您发表有点愤世嫉俗的评论。我不是以英语为母语的人。我只是把你的问题重读了大约5遍,我仍然没有一点线索知道你想问什么。也许你可以尝试完全重新表述你的问题(用更简单的词和更多的上下文)。看起来你正在寻找的是
items[type]
,你并不真正需要这个函数。数组和列表不是一回事。您使用的是列表。抱歉,我将更新问题。请您发表有点愤世嫉俗的评论。我不是以英语为母语的人。我只是把你的问题重读了大约5遍,我仍然没有一点线索知道你想问什么。也许你可以尝试完全重新表述你的问题(用更简单的词和更多的上下文),请。似乎items[type]
是你正在寻找的,你并不真的需要这个函数。不要覆盖内置(在这种情况下是type)不要覆盖内置(在这种情况下是type)