我有一个元素列表。每个元素都是一个列表。例如
a=[[1,2,3,[1,2,3,4]], [4,5,6,[2,5]], [7,8,9,[3,3,4]]...]]
如何从外部列表中的每个元素说出第二个元素,即[2,5,...]?
a [:,2]会很好(它有什么其他可能的解释)但似乎我这样做的唯一方法是使用一些描述的for循环。如果是后者,在我看来,我会更好地用每个元素的命名数组重写我的代码。然后我会问 - 列表何时才有用?
如果我使用圆括号并用元组替换术语列表,我可以同样问同样的问题,然后让我问为什么要为这个区别而烦恼?一个元组给了我什么,我无法用列表实现?
答案 0 :(得分:0)
如果您想避免循环,可以使用itemgetter
和map
来提取列表:
import operator
a = [[1,2,3,[1,2,3,4]], [4,5,6,[2,5]], [7,8,9,[3,3,4]]]
print map(operator.itemgetter(1), a) # [2, 5, 8]
根据您的列表所包含的数据,您最好创建一个类并使用对象。使用列表使您能够使用列表操作,并允许将子列表用作序列和迭代,这可能是有益的,具体取决于您要对数据执行的操作。使用自定义类和magic methods可以实现相同的功能,但这需要更多的工作。
使用元组将允许您在集合和字典键中使用它们,因为它们是不可变的。 other questions有关于差异的详细答案。
答案 1 :(得分:0)
你试过这个吗?
>>> a=[[1, 2, 3, [1, 2, 3, 4]], [4, 5, 6, [2, 5]], [7, 8, 9, [3, 3, 4]]]
>>> [ i[1] for i in a]
[2, 5, 8]