需要从python中的嵌套列表中获取名称

时间:2016-11-28 00:10:50

标签: python list python-3.x for-loop nested

您好我有一个简单的嵌套列表。 我的目标是获取每个内部列表的索引0处的项目,并将其分配给变量" names"。所以我想要一个只有名字的变量

numerical_list = [['Casey', 176544.328149], ['Riley', 154860.66517300002]]

尝试失败

for i in numerical_list:
    list = i[0]

new_list = [list]

print(list)

需要: new_list打印出Casey,Riley

5 个答案:

答案 0 :(得分:3)

尝试

print([v[0] for v in numerical_list])

请注意,您不应将list用作变量名称。这将隐藏该词的内置含义。

该打印输出看起来像一个列表,因为它是一个。您可以在结果列表的值上使用循环来获得所需的任何格式。例如,

for i in [v[0] for v in numerical_list]:
    print(i, end= ' ')

在Python 3中打印

Casey Riley

或者,如果您了解join方法,

print(' '.join([v[0] for v in numerical_list]))

答案 1 :(得分:2)

除了使用列表理解之外,您还可以使用map()来实现它:

>>> from operator import itemgetter
>>> numerical_list = [['Casey', 176544.328149], ['Riley', 154860.66517300002]]

>>> list(map(itemgetter(0), numerical_list))
['Casey', 'Riley']

或者,通过将其转换为dict(仅用于说明,未建议)的小黑客:

>>> dict(numerical_list).keys()
['Casey', 'Riley']   # Note: As `dict` are not ordered, you may loose the actual order in list
                     #       Use `collections.OrderedDict` for maintaining order

然后,要将列表内容打印为字符串,请使用join()打印为:

 print(' '.join(my_list))  # where `my_list` is holding the list of words

答案 2 :(得分:1)

我建议你使用不同的变量名,而不是list,这是一个内置的Python功能。

这样的事情会起作用:

new_list = [sublist[0] for sublist in numerical_list]

答案 3 :(得分:0)

new_list = [sublist[0] for sublist in numerical_list] print new_list

答案 4 :(得分:0)

您也可以使用for (var i = 0; i < data.points.length; i++) { console.log(data.points[i].lat, data.points[i].long); } 模块中的groupby,例如:

itertools

输出:

from itertools import groupby

numerical_list = [['Casey', 176544.328149], ['Riley', 154860.66517300002]]

new_list = [key for key, _ in groupby(numerical_list, lambda x : x[0])]
print(new_list)