Объединить текущий элемент со следующим элементом в списке - PullRequest
2 голосов
/ 26 февраля 2020

Я довольно смущен из-за этого вопроса, но я просто хочу объединить текущий элемент в списке со следующим элементом. Список дан как:

['scalar2_q1p2_114(-2,-2) =', '0', 'scalar2_q1p2_114(-2,-1) =', '0',
 'scalar2_q1p2_114(-2,0) =', '0', 'scalar2_q1p2_114(-2,1) =', '0',
 'scalar2_q1p2_114(-2,2) =', '0', 'scalar2_q1p2_114(-1,-2) =', '0',
 'scalar2_q1p2_114(-1,-1) =', '0', 'scalar2_q1p2_114(-1,0) =', '0',
 'scalar2_q1p2_114(-1,1) =', '0', 'scalar2_q1p2_114(-1,2) =', '0',
 'scalar2_q1p2_114(0,-2) =', '0', 'scalar2_q1p2_114(0,-1) =', '0',
 'scalar2_q1p2_114(0,0) =', '0', 'scalar2_q1p2_114(0,1) =', '0',
 'scalar2_q1p2_114(0,2) =', '0', 'scalar2_q1p2_114(1,-2) =', '0',
 'scalar2_q1p2_114(1,-1) =', '0', 'scalar2_q1p2_114(1,0) =', '0',
 'scalar2_q1p2_114(2,-2) =', '0', 'scalar2_q1p2_114(2,-1) =', '0',
 'scalar2_q1p2_114(2,0) =', '0', 'scalar2_q1p2_114(1,2) =',
 'scalar2_q1p2_114(1,1)*((-d+3)/(SPD[p2,p2]))']

Мне нужен список в форме:

['scalar2_q1p2_114(-2,-2) = 0', ...].

Кто-нибудь может мне помочь с этой небольшой проблемой

Ответы [ 3 ]

2 голосов
/ 26 февраля 2020

Вы можете использовать понимание списка со встроенной функцией zip:

l = ['scalar2_q1p2_114(-2,-2) =', '0', 'scalar2_q1p2_114(-2,-1) =', '0',
 'scalar2_q1p2_114(-2,0) =', '0', 'scalar2_q1p2_114(-2,1) =', '0',
 'scalar2_q1p2_114(-2,2) =', '0', 'scalar2_q1p2_114(-1,-2) =', '0',
 'scalar2_q1p2_114(-1,-1) =', '0', 'scalar2_q1p2_114(-1,0) =', '0',
 'scalar2_q1p2_114(-1,1) =', '0', 'scalar2_q1p2_114(-1,2) =', '0',
 'scalar2_q1p2_114(0,-2) =', '0', 'scalar2_q1p2_114(0,-1) =', '0',
 'scalar2_q1p2_114(0,0) =', '0', 'scalar2_q1p2_114(0,1) =', '0',
 'scalar2_q1p2_114(0,2) =', '0', 'scalar2_q1p2_114(1,-2) =', '0',
 'scalar2_q1p2_114(1,-1) =', '0', 'scalar2_q1p2_114(1,0) =', '0',
 'scalar2_q1p2_114(2,-2) =', '0', 'scalar2_q1p2_114(2,-1) =', '0',
 'scalar2_q1p2_114(2,0) =', '0', 'scalar2_q1p2_114(1,2) =',
 'scalar2_q1p2_114(1,1)*((-d+3)/(SPD[p2,p2]))']

[f + ' ' + s for f, s in zip(l[::2], l[1::2])]

вывод:

['scalar2_q1p2_114(-2,-2) = 0',
 'scalar2_q1p2_114(-2,-1) = 0',
 'scalar2_q1p2_114(-2,0) = 0',
 'scalar2_q1p2_114(-2,1) = 0',
 'scalar2_q1p2_114(-2,2) = 0',
 'scalar2_q1p2_114(-1,-2) = 0',
 'scalar2_q1p2_114(-1,-1) = 0',
 'scalar2_q1p2_114(-1,0) = 0',
 'scalar2_q1p2_114(-1,1) = 0',
 'scalar2_q1p2_114(-1,2) = 0',
 'scalar2_q1p2_114(0,-2) = 0',
 'scalar2_q1p2_114(0,-1) = 0',
 'scalar2_q1p2_114(0,0) = 0',
 'scalar2_q1p2_114(0,1) = 0',
 'scalar2_q1p2_114(0,2) = 0',
 'scalar2_q1p2_114(1,-2) = 0',
 'scalar2_q1p2_114(1,-1) = 0',
 'scalar2_q1p2_114(1,0) = 0',
 'scalar2_q1p2_114(2,-2) = 0',
 'scalar2_q1p2_114(2,-1) = 0',
 'scalar2_q1p2_114(2,0) = 0',
 'scalar2_q1p2_114(1,2) = scalar2_q1p2_114(1,1)*((-d+3)/(SPD[p2,p2]))']
2 голосов
/ 26 февраля 2020

Вы должны перебирать список по 2 элемента за раз.

Попробуйте это.

[my_list[i]+my_list[i+1] for i in range(0,len(my_list)-1,2)] #my_list is the original list you've posted in the question

['scalar2_q1p2_114(-2,-2) =0',
 'scalar2_q1p2_114(-2,-1) =0',
 'scalar2_q1p2_114(-2,0) =0',
 'scalar2_q1p2_114(-2,1) =0',
 'scalar2_q1p2_114(-2,2) =0',
 'scalar2_q1p2_114(-1,-2) =0',
 'scalar2_q1p2_114(-1,-1) =0',
 'scalar2_q1p2_114(-1,0) =0',
 'scalar2_q1p2_114(-1,1) =0',
 'scalar2_q1p2_114(-1,2) =0',
 'scalar2_q1p2_114(0,-2) =0',
 'scalar2_q1p2_114(0,-1) =0',
 'scalar2_q1p2_114(0,0) =0',
 'scalar2_q1p2_114(0,1) =0',
 'scalar2_q1p2_114(0,2) =0',
 'scalar2_q1p2_114(1,-2) =0',
 'scalar2_q1p2_114(1,-1) =0',
 'scalar2_q1p2_114(1,0) =0',
 'scalar2_q1p2_114(2,-2) =0',
 'scalar2_q1p2_114(2,-1) =0',
 'scalar2_q1p2_114(2,0) =0',
 'scalar2_q1p2_114(1,2) =scalar2_q1p2_114(1,1)*((-d+3)/(SPD[p2,p2]))']
0 голосов
/ 26 февраля 2020

Вы можете использовать str.join и zip поверх любого другого элемента, используя нарезку:

list(map('  '.join, zip(l[::2], l[1::2])))

['scalar2_q1p2_114(-2,-2) = 0',
 'scalar2_q1p2_114(-2,-1) = 0',
 'scalar2_q1p2_114(-2,0) = 0',
 'scalar2_q1p2_114(-2,1) = 0',
 'scalar2_q1p2_114(-2,2) = 0',
 'scalar2_q1p2_114(-1,-2) = 0',
 'scalar2_q1p2_114(-1,-1) = 0',
 'scalar2_q1p2_114(-1,0) = 0',
 'scalar2_q1p2_114(-1,1) = 0',
 'scalar2_q1p2_114(-1,2) = 0',
 'scalar2_q1p2_114(0,-2) = 0',
 'scalar2_q1p2_114(0,-1) = 0',
 'scalar2_q1p2_114(0,0) = 0',
 'scalar2_q1p2_114(0,1) = 0',
 'scalar2_q1p2_114(0,2) = 0',
 'scalar2_q1p2_114(1,-2) = 0',
 'scalar2_q1p2_114(1,-1) = 0',
 'scalar2_q1p2_114(1,0) = 0',
 'scalar2_q1p2_114(2,-2) = 0',
 'scalar2_q1p2_114(2,-1) = 0',
 'scalar2_q1p2_114(2,0) = 0',
 'scalar2_q1p2_114(1,2) = scalar2_q1p2_114(1,1)*((-d+3)/(SPD[p2,p2]))']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...