【问题标题】:How to append all values of each deque in array of deques into one array? (Which also delete the first duplicate node in each deque)如何将双端队列数组中每个双端队列的所有值附加到一个数组中? (这也删除了每个双端队列中的第一个重复节点)
【发布时间】:2020-01-07 22:16:51
【问题描述】:

我有一个数组包含使用以下循环预测的位置:

for x in range(numStop):
        locationArr.append(random.choice("BCDEFGHIJKLMOPQR"))

然后我使用 Dijkstra 算法应用于上述数组的每个对元素,返回是一个双端队列数组,每个双端队列包含两个节点之间的路径,如下所示:

locationArr: ['I', 'C', 'J', 'E']
pathfindingArr: [deque(['I', 'D', 'C']), deque(['C', 'J']), deque(['J', 'C', 'D', 'E'])]

我想将 pathfindingArr 中每个双端队列中的所有节点添加到单个数组中(同时删除每个双端队列中的第一个重复节点),如下所示:

completeArr: ['I', 'D', 'C', 'J', 'C', 'D', 'E']

请帮帮我,我不知道该怎么做?!非常感谢您的帮助!

【问题讨论】:

    标签: python-3.x deque


    【解决方案1】:

    可以这样:

    from collections import deque
    pathfindingArr= [deque(['I', 'D', 'C']), deque(['C', 'J']), deque(['J', 'C', 'D', 'E'])]
    out = []
    for i,deq in enumerate(pathfindingArr):
      for element in deq:
        if len(out)==0:
          out.append(element)
        else:
          if not element == out[len(out)-1]:
            out.append(element)
    
    print(out)
    

    测试上面的代码here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-02
      • 2018-10-31
      • 1970-01-01
      • 1970-01-01
      • 2018-12-09
      • 2015-04-03
      • 2015-09-01
      • 1970-01-01
      相关资源
      最近更新 更多