Python 3.x 在python中从嵌套列表创建集合
有人能解释一下这是怎么回事吗?您正在迭代Python 3.x 在python中从嵌套列表创建集合,python-3.x,list,set,Python 3.x,List,Set,有人能解释一下这是怎么回事吗?您正在迭代名称、标记到标记表。因此,您要提取两个值并将它们存储为name,忽略它们,并将它们存储为标记,从中创建列表。您刚刚创建的列表将传递给set,后者将创建一个集合。您可以逐步分解代码: marksheet = [['harry',87], ['bob', 76], ['bucky', 98]] print(set([marks for name, marks in marksheet])) output: {98, 76, 87} 您还可以将要提取的值括
名称、标记
到标记表
。因此,您要提取两个值并将它们存储为name
,忽略它们,并将它们存储为标记
,从中创建列表。您刚刚创建的列表将传递给set
,后者将创建一个集合。您可以逐步分解代码:
marksheet = [['harry',87], ['bob', 76], ['bucky', 98]]
print(set([marks for name, marks in marksheet]))
output: {98, 76, 87}
您还可以将要提取的值括在括号中,以使其更清楚:
marksheet = [['harry',87], ['bob', 76], ['bucky', 98]]
In [40]: marksheet
Out[40]: [['harry', 87], ['bob', 76], ['bucky', 98]]
In [41]: l = [marks for name, marks in marksheet]
In [42]: l
Out[42]: [87, 76, 98]
有些人使用\uu
表示返回值被忽略:
In [43]: l = [marks for (name, marks) in marksheet]
In [44]: l
Out[44]: [87, 76, 98]
以上是列表理解的一个例子。这相当于:
In [45]: l = [marks for (_, marks) in marksheet]
In [46]: l
Out[46]: [87, 76, 98]
从那里,您只需将列表传递到set
,这可能需要一个iterable。在本例中,您刚刚创建的列表是iterable:
In [47]: l=[]
In [48]: for (name, marks) in marksheet:
...: l.append(marks)
...:
In [49]: l
Out[49]: [87, 76, 98]
In [50]: set(l)
Out[50]: {76, 87, 98}