Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-如果满足条件,则获取列表的子列表_Python_Arrays_List - Fatal编程技术网

Python-如果满足条件,则获取列表的子列表

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

我有一些我在项目的不同功能中使用的对象列表,但首先我必须解析它们以确保使用正确的对象。我在下面的函数中这样做。目前我使用的是条件检查,因为根据列表中对象的位置,它们可能位于不同的结构中。我很好奇,如果仍然满足条件语句,是否还有合并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)]

您不需要
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)