Преобразовать или добавить в пустой список списка в 0 - PullRequest
0 голосов
/ 02 мая 2020

У меня есть массив, который выглядит следующим образом

a = [ [1], [2], [] , [4] ]

И я использовал "sum":

a = sum(a,[])

и получил что-то вроде этого:

a =(1,2,4)

Дело в том, что Я хочу получить что-то похожее на это :

a = (1,2,0,4)

В позиции «[]» я хочу 0, потому что я хочу преобразовать этот список списка в просто вектор. Я новичок в python, так что есть способ заставить это произойти, например, или заполнить "[]" 0, получив "[0]", а затем применить сумму или сказать, что если появляется "[]", это 0

Ответы [ 4 ]

1 голос
/ 03 мая 2020

Использовать понимание списка и кортеж ():

In : [ l[0] if l else 0 for l in a ]                                                                                       
Out: [1, 2, 0, 4]

In : tuple( [ l[0] if l else 0 for l in a ] )                                                                             
Out: (1, 2, 0, 4)
0 голосов
/ 03 мая 2020

Как насчет этого?

a = [ [1], [2], [] , [4] ]
for i in range(0, len(a)):
    if a[i]==[]:
        a[i]=[0]
a = sum(a,[])
0 голосов
/ 03 мая 2020

Вы можете использовать понимание списка (очень pythoni c: D), чтобы заменить все пустые списки в a на список, содержащий 0:

a = [ [1], [2], [] , [4] ]
a = [[0] if not arr else arr for arr in a]
a = sum(a,[])
// a = [1, 2, 0, 4]

В строке if not arr используется внутренняя логичность списков, причем, если список пуст, его логическое значение равно false.

0 голосов
/ 03 мая 2020
for n, i in enumerate(a)
   if i == []:
      a[n] = [0]

Это должно сработать.

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