从其他一些列表的元素中创建新的列表列表

时间:2016-07-07 07:51:14

标签: python list

我有以下列表清单:

Points = [['A', 1.01, 0.11], ['B', 0.97, 0.14], ['C', 1.05, 0.15], ['D', 0.96, 0.14], ['E', 1.55, 0.22], ['F', 1.06, 0.04], ['G', 0.88, 0.15], ['H', 0.80, 0.21], ['I', 0.87, 0.19], ['J', 0.80, 0.30]]

Origin = [['J', 0.80, 0.30]]

Distance = [0.28, 0.23, 0.30, 0.22, 0.75, 0.37, 0.17, 0.09, 0.13, 0.0]

我需要在点列表中获取列表的第一个元素, 原始列表中列表的第一个元素, 和距离列表的距离。

如何使用Python创建这样的新列表?

Span = [['A', 'J', 0.28], ['B', 'J', 0.23], ['C', 'J', 0.30], ['D', 'J', 0.22], ['E', 'J', 0.75], ['F', 'J', 0.37], ['G', 'J', 0.17], ['H', 'J', 0.09], ['I', 'J', 0.13], ['J', 'J', 0.00]]

我在下面试过

Point_Name=[(i[0]) for i in Points]
Origin_Set=[(i[0]) for i in Origin]
Span = zip(Point_Name,Origin_Set,Distance)
print Span

但是因为我需要它没有成功。因为我只有一个清单:

[('A', 'J', 0.28)]

2 个答案:

答案 0 :(得分:0)

这就是你可以做到的。

list = []
for i in range(len(Points)):
    element = []
    element.append(Points[i][0])
    element.append(Origin[0][0])
    element.append(Distance[i])
    list.append(element)
print list 

答案 1 :(得分:0)

pythonic实现。

[i.append(Origin[0][0]) for i in Points]
print [[item1[0],item1[-1],item2] for item1,item2 in zip(Points,Distance)]

<强>结果

[['A', 'J', 0.28], ['B', 'J', 0.23], ['C', 'J', 0.3], ['D', 'J', 0.22], ['E', 'J', 0.75], ['F', 'J', 0.37], ['G', 'J', 0.17], ['H', 'J', 0.09], ['I', 'J', 0.13], ['J', 'J', 0.0]]