首页 > 解决方案 > 通过函数传递多个列表

问题描述

我想使用 3 个列表作为函数的参数。也许我的整个逻辑在这一点上是错误的,但我想做的是使用两个列表来创建迭代器来解析第三个列表。顺序很重要,因此第一个和第二个列表的第一个元素将给出第一个和最后一个索引等。

我的代码只给出了第一个子列表,当然我想拥有所有这些子列表。

A=[1, 3, 4, 6]
B=[3, 8, 5, 8]
C=['A', 'B','C', 'D', 'E', 'A', 'B', 'A', 'D']

def newlists(entirelist, initiating, terminating):
    for initindex in initiating:
        for termindex in terminating:

        parsed_list = entirelist[initindex:termindex]

        return parsed_list



all_sublists = newlists(C, A, B)

我需要以下输出或类似的东西来获取子列表:

all_sublists = [['B','C'],['D','E', 'A', 'B', 'A'],['E'],['B','A']]

标签: pythonpython-2.7listfunction

解决方案


你可以使用理解来得到你想要的:

A=[1, 3, 4, 6]
B=[3, 8, 5, 8]
C=['A', 'B','C', 'D', 'E', 'A', 'B', 'A', 'D']

def newlists(entirelist, initiating, terminating):
    return [entirelist[i:j] for i, j in zip(initiating, terminating)]

print(newlists(C, A, B))
#[['B', 'C'], ['D', 'E', 'A', 'B', 'A'], ['E'], ['B', 'A']]

推荐阅读