Как условно повторить определенные строки в Python? [закрыто]

avatar
Sinner Lee
9 августа 2021 в 03:35
101
1
-2

У меня есть такой массив: arr=[[1,2,3,4,'a,b,c,d'],[5,6,7,8,'e,f,g,h']]

Я хочу быть: arr=[[1,2,3,4,'a'],[1,2,3,4,'b'],[1,2,3,4,'c'],[1,2,3,4,'d'],[5,6,7,8,'e'],[5,6,7,8,'f'],[5,6,7,8,'g'],[5,6,7,8,'h']]

может кто-нибудь помочь дать мне предложение? Большое спасибо.

Источник

Ответы (1)

avatar
Connor O'Leary
9 августа 2021 в 04:07
1

вы можете перебрать строку (последний элемент в списке) и добавить ответ ко всему, кроме последнего элемента

new_arr = [[li[:-1]+[letter] for letter in li[-1].split(',')] for li in arr]
# Flatten
out = [item for sublist in new_arr for item in sublist]
Sinner Lee
9 августа 2021 в 05:51
0

большое спасибо. Этот ответ очень полезен для меня. Затем я нашел другой способ решить эту проблему. поделитесь ^0^. arr=pd.DataFrame(arr) arr.columns=['a','b','c','d','e'] arr.assign(e=arr.e.str.split(',')).explode('e')