Python 以编程方式从嵌套列表中检索元素

Python 以编程方式从嵌套列表中检索元素,python,Python,使用以下示例从嵌套列表中检索元素。当列表嵌套更深时,需要使用更多的elif语句扩展此代码。问题是这是一个合适的解决方案,还是更好的办法 m_list_test = [0, 1, [2.0, 2.1], [3.0]] def get_list_element(m_list, idx1=None, idx2=None): if idx1 is None and idx2 is None: return m_list elif idx2 is None:

使用以下示例从嵌套列表中检索元素。当列表嵌套更深时,需要使用更多的elif语句扩展此代码。问题是这是一个合适的解决方案,还是更好的办法

m_list_test = [0, 1, [2.0, 2.1], [3.0]]


def get_list_element(m_list, idx1=None, idx2=None):
    if idx1 is None and idx2 is None:
        return m_list
    elif idx2 is None:
        return m_list[idx1]

    else:
        return m_list[idx1][idx2]


print(get_list_element(m_list_test))
print(get_list_element(m_list_test,2,1))
输出将是:

[0, 1, [2.0, 2.1], [3.0]]
2.1
您可以使用打包参数编写更多“通用”解决方案:

def get_list_element(source, *indexes):
    for index in indexes:
        source = source[index]
    return source