【问题标题】:Making new list of lists from elements of some other lists从其他一些列表的元素制作新的列表列表
【发布时间】:2016-07-07 07:51:14
【问题描述】:

我有以下列表:

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)]

【问题讨论】:

  • @JulienBernu 谢谢你的提醒,我已经编辑了我的帖子

标签: python list


【解决方案1】:

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]]

【讨论】:

    【解决方案2】:

    你可以这样做。

    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 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 2019-08-13
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 2021-11-01
      • 1970-01-01
      相关资源
      最近更新 更多