使用以下示例从嵌套列表中检索元素。当列表具有更深的嵌套时,需要使用更多的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
答案 0 :(得分:2)
您可以使用打包参数编写更多的“通用”解决方案:
def get_list_element(source, *indexes):
for index in indexes:
source = source[index]
return source