在python中从多维获取切片

在python中从多维获取切片,python,Python,我觉得这不是一个简单的方法来获取列表中的所有名称,如何修改它?您知道名称将是列表中的第二个元素,因此您可以使用列表理解,如下所示 LISTA=[["001", "TOM", "13800000001", "AAAA"],["002", "Jerry", "13800000002", "BBBB"]] name=[] for ID,NAME,HSNUMBER,ADDRESS in LISTA: name.append(NAME) >>> name ['TOM', 'Je

我觉得这不是一个简单的方法来获取列表中的所有名称,如何修改它?

您知道名称将是列表中的第二个元素,因此您可以使用列表理解,如下所示

LISTA=[["001", "TOM", "13800000001", "AAAA"],["002", "Jerry", "13800000002", "BBBB"]]
name=[]
for ID,NAME,HSNUMBER,ADDRESS in LISTA:
    name.append(NAME)

>>> name
['TOM', 'Jerry']

我认为这是一个非常简单的方法

names = [item[1] for item in LISTA]
print names
# ['TOM', 'Jerry']
更新
这里的
*
是什么意思?

大体上

>>> LISTA=[["001", "TOM", "13800000001", "AAAA"],["002", "Jerry", "13800000002", "BBBB"]]
>>> name = zip(*LISTA)[1]
('TOM', 'Jerry')
相当于

x = func(*[a, b, c])
#zip(*LISTA)
zip(*[["001", "TOM", "13800000001", "AAAA"],["002", "Jerry", "13800000002", "BBBB"]])
所以这里

x = func(a, b, c)
相当于

x = func(*[a, b, c])
#zip(*LISTA)
zip(*[["001", "TOM", "13800000001", "AAAA"],["002", "Jerry", "13800000002", "BBBB"]])

这里的
*
是什么意思?它的意思是将列表中的每个元素作为参数传递。请参阅了解更多详细信息。在python3中,它是
list(zip(*LISTA))[1]
。啊,我不知道。在Python2.7中,它是
列表(itertools.izip(*LISTA))[1]