如何提取嵌套列表第n个元素的第一个元素(作为字符串列表),Python

如何提取嵌套列表第n个元素的第一个元素(作为字符串列表),Python,python,list,Python,List,我是一名新的python初学者,正在尝试提取嵌套列表的前n个元素中的第一个元素。但到目前为止还不起作用 说: 目标: 如果我想成为列表中所有元素的第一个元素,它应该是: for i in list: for j in i: print j[0] 但是如果我只想去掉列表第n个元素中的第一个元素,而不是所有元素,该怎么办呢 例如,对于前2个元素: 我试过: 但它不起作用 更重要的是,如果我想稍后使用 def sheet(list, n) 还有返回语句,我该怎么做 非常感

我是一名新的python初学者,正在尝试提取嵌套列表的前n个元素中的第一个元素。但到目前为止还不起作用

说:

目标:

如果我想成为列表中所有元素的第一个元素,它应该是:

for i in list:
    for j in i:
        print j[0]
但是如果我只想去掉列表第n个元素中的第一个元素,而不是所有元素,该怎么办呢

例如,对于前2个元素: 我试过:

但它不起作用

更重要的是,如果我想稍后使用

def sheet(list, n) 
还有返回语句,我该怎么做

非常感谢

lst = [["Anna","w",15],["Peter","m",20],["Zani","m",10], ["Lily","w",19]]
n = 2
print(lst[n][0])
输出: 扎尼

---问题中添加的详细信息的更新答案---

输出:

安娜


Peter

小心,list是为python中的内置函数
list()保留的,您不应该使用'list'作为变量名

要获取每个嵌套列表的第一个元素,请执行以下操作:

l = [["Anna","w",15],["Peter","m",20],["Zani","m",10], ["Lily","w",19]]
for e in l:
     print(e[0])
印刷品:

Anna
Peter
Zani
Lily
要对第n个元素执行相同操作,请执行以下操作:

def sheet(l, n):
    return [e[0] for e in l[:n]]

sheet(l, 3)
返回

['Anna', 'Peter', 'Zani']

编辑

def sheet(l, n):
    for e in l[:n]
        return [e[0]]
此代码仅返回
['Anna']
,因为
return
语句停止函数。for循环在第一个元素处停止

def sheet(l, n):
    return [e[0] for e in l[:n]]
相当于:

def sheet(l, n):
    result = [e[0] for e in l[:n]]
    return result
def sheet(l, n):
    result = []
    for e in l[:n]:
        result.append(e[0])
    return result
这相当于:

def sheet(l, n):
    result = [e[0] for e in l[:n]]
    return result
def sheet(l, n):
    result = []
    for e in l[:n]:
        result.append(e[0])
    return result
for循环可以在return语句之前结束


更多信息。

只需尝试这一项,它将使您更容易理解:

n = int(input())

lst = [["Anna","w",15],["Peter","m",20],["Zani","m",10], ["Lily","w",19]]
lst_new = []

for item in lst[:n]:
    name, *rest = item
    lst_new.append(name)

您可以使用列表理解。给定列表的输入列表
L

L_new = [i[0] for i in L[:n]]
在功能上,您可以使用。此外,您可以使用以避免创建中间人列表:

from operator import itemgetter
from itertools import islice

L_new = list(map(itemgetter(0), islice(L, 0, n)))

回答这个问题不容易吗?休息?这是高级蟒蛇不会说它是高级蟒蛇。至少它更容易形象化*剩下的只需在第一个元素之后获取所有元素。非常感谢!!但是预期的结果应该是字符串列表->[“安娜”、“彼得”、“扎尼”]结果是字符串列表@SuwanWangI see!非常感谢。嘿@Corentin Limier!请您解释一下返回[e[0]与返回[e[0]的区别是什么。对于第二个,它只返回[“Anna”]。但逻辑似乎是一样的。提前谢谢你!旁注:切勿在内置类后命名变量,例如使用
L
lst
而不是
list
。@jpp变量不应以大写字母开头,因此'L'而不是'L'(pep8)@corentalimier,
L
是一个很大的“否”。在许多字体中,它与大写字母
I
混淆。在任何情况下,隐藏内置的要点都是不同的,而且要重要得多。你永远不想覆盖内置的。
L_new = [i[0] for i in L[:n]]
from operator import itemgetter
from itertools import islice

L_new = list(map(itemgetter(0), islice(L, 0, n)))