您好我有一个简单的嵌套列表。 我的目标是获取每个内部列表的索引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
答案 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)