-
波斯汪
您可以使用lambda和list comprehension:array2D = [[1,2,3],[4,5,6]]fn = lambda x: [item[x] for item in array2D]print(fn(0)) # [1, 4]print(fn(1)) # [2, 5]print(fn(2)) # [3, 6]如注释中所建议,您可以对函数定义应用相同的概念:def fn(x): return [item[x] for item in array2D]print(fn(0)) # [1, 4]print(fn(1)) # [2, 5]print(fn(2)) # [3, 6]Lambda函数非常有用,可以让您以一种非常清晰的方式定义操作。在我们的示例中,我们的lambda接受一个variable x,该变量表示我们想要的每个itemin的索引array2D然后您有了list comprehension,类似于lambda函数,它们是一个非常强大的工具,并且是python中的必备工具在这种情况下,您应该预先准备好功能定义,如PEP-8所建议。
-
幕布斯6054654
您可以使用operator.itemgetter:array2D = [[1,2,3],[4,5,6]]from operator import itemgetterdef fn(x, k): return list(map(itemgetter(k), x))fn(array2D, 0) # [1, 4]如果要定义用于检索特定索引的新函数,可以通过functools.partial以下方法进行操作:from functools import partialdef fn(x, k): return list(map(itemgetter(k), x))get_zero_index = partial(fn, k=0)get_zero_index(array2D) # [1, 4]
-
月关宝盒
以下列表理解将起作用:def fn(i, lst): return [sublst[i] for sublst in lst]>>> array2D = [[1, 2, 3], [4, 5, 6]]>>> fn(0, array2D)[1, 4]>>> fn(1, array2D)[2, 5]