如何提取嵌套列表第n个元素的第一个元素(作为字符串列表),Python
我是一名新的python初学者,正在尝试提取嵌套列表的前n个元素中的第一个元素。但到目前为止还不起作用 说: 目标: 如果我想成为列表中所有元素的第一个元素,它应该是:如何提取嵌套列表第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) 还有返回语句,我该怎么做 非常感
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)))