【发布时间】:2019-11-18 22:18:55
【问题描述】:
我想获取列表最后一个索引中的元素,但有时最后一个索引是一个列表,在这种情况下我想要嵌套列表中的第一个元素。
#list in moment 1:
Lm1 = [1,2,3,4]
#list in moment 2:
Lm2 = [1,2,3,4,[1,2,3]]
我可以只使用一个 if。
#Option1:
def if_list(lastposition):
if isinstance(lastposition, list):
return list[0]
else:
return lastposition
element = if_list(Lm1[-1])
do whatever
或者,如果我想在这两种情况下执行相同的操作,我可以像这样构建列表并使用相同的切片表示法。它会给出我想要的元素。
#Option2:
Lm1 = [[1],[2],[3],[4]]
Lm2 = [[1],[2],[3],[4],[1,2,3]]
Lm1[-1][0]
Lm2[-1][0]
有没有办法使用类似于切片表示法的方法来做到这一点,这种方法在两种情况下都有效(当索引是列表时,当索引不是列表时)或简单的单列?
类似:
#Lm1[-1:][:]...
问题是我不知道仅构建列表是否更节省时间 像 Option2 并使用相同的切片表示法或每次都像 Option1 一样使用 if 原因。
我使用的是 pythom 3.7,对旧版本不太了解。
【问题讨论】:
-
或者尝试一下?
-
“有没有办法使用类似于切片表示法的东西在这两种情况下都可以使用”不,没有。一般来说,如果您的列表包含这样的异构数据类型,则表明您的设计存在问题。
标签: python python-3.x list nested slice