Есть ли способ оценить групповые значения в dict и добавить их в несколько списков - PullRequest
1 голос
/ 02 марта 2020

Я хочу выполнить итерацию по каждой паре dictionary.keys () и получить каждые два соответствующих dictionary.values ​​() и добавлять их в новый список каждый l oop с указанным c порядком. Итак, словарь, который я получаю после сортировки массива:

dictionary =

{0.0: [0.0, 2.27991, 4.55981, 6.83972, 9.11963, 11.3995, 13.6794], 

2.30078: [0.0, 2.27991, 4.55981, 6.83972, 9.11963, 11.3995, 13.6794], 

4.60156: [0.0, 2.27991, 4.55981, 6.83972, 9.11963, 11.3995, 13.6794], 

6.90234: [0.0, 2.27991, 4.55981, 6.83972, 9.11963, 11.3995, 13.6794],

9.20313: [0.0, 2.27991, 4.55981, 6.83972, 9.11963, 11.3995, 13.6794], 

11.5039: [0.0, 2.27991, 4.55981, 6.83972, 9.11963, 11.3995, 13.6794], 

13.8047: [0.0, 2.27991, 4.55981, 6.83972, 9.11963, 11.3995, 13.6794]}

, и список, который я хотел бы получить, это

list_%is = 

[0.0,0.0,0.0,2.27991,2.30078,0.0,2.30078,2.27991]

[key1,value1-1,key1,value1-2,key2,value2-1,key2,value2-2]

с продолжением итерации, вторая будет: 1007 *

[0.0,2.27991,0.0,4.55981,2.30078,2.27991,2.30078,4.55981]

и просто для пояснения последовательности:

[key1,value1-2,key1,value1-3,key2,value2-2,key2,value2-3]

, так что каждое начальное второе значение ключа будет первым выводиться в итерации n + 1.

I Я пытался получить их с помощью простого вложенного цикла for, но я заканчиваю 4-5 для циклов с 2-3 sub, если оператор и неправильный вывод, не говоря уже о пустых итерациях и медленном времени решения, если словарь намного больше.

1 Ответ

1 голос
/ 02 марта 2020

Я понимаю ваше предположение о том, чтобы продолжать использовать для циклов for и if, но я верю, что вы можете добиться этого всего за 2 цикла и пару дополнительных переменных.

Вот как я это решил,

outList = []
i = 0
for i in range(len(dictionary)-1):
  outTemp = []
  for key in dictionary:
    outTemp.extend([key,dictionary[key][i],dictionary[key][i+1]])
  outList.append(outTemp)
print(outList)

Вы можете увидеть пример этой работы ЗДЕСЬ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...