Как я могу собрать строки различной длины в один массив или список в Python? - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть несколько строк, таких как

a=[142, 205, 206, 238, 366]
b=[12,14]
c=[1, 5, 8] 

, и я хочу собрать их вместе в окончательный массив или список из трех строк разной длины. Я использовал append, concatenate и hstack, но все они должны иметь одинаковые размеры данных. Что я могу использовать, пожалуйста? Спасибо

Я имею в виду, что у меня есть цикл, в котором я хочу соединить множество строк (в d) и прочитать каждый элемент позже из d в другом цикле, основанном на столбце и строке d. У меня есть большой цикл for в моем коде, но в качестве примера просто вместо for я считаю, что я хочу сделать эту процедуру итеративно, как показано ниже, только для четырех строк (a, b, c, k):

d=[]

#below are rows of assumed data
a = [142, 205, 206, 238, 366]
b = [12,14]
c = [1, 5, 8]
k=[] #might have null data as well

d=[d,a]
print(d)

d=[d,b]
print(d)

d=[d,k]
print(d)

d=[d,c]
print(d)

d[1][0]

Но, наконец, вот ответ, который я получаю:

[[], [142, 205, 206, 238, 366]]
[[[], [142, 205, 206, 238, 366]], [12, 14]]
[[[[], [142, 205, 206, 238, 366]], [12, 14]], []]
[[[[[], [142, 205, 206, 238, 366]], [12, 14]], []], [1, 5, 8]]

1

, что неверно, и должно быть d [1] [0] = 142

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

Numpy не поддерживает зубчатые массивы, поэтому ваш лучший вариант - это список.

a = [142, 205, 206, 238, 366]
b = [12,14]
c = [1, 5, 8]

d = [a, b, c]

Я все еще не совсем уверен, что понимаю ваше редактирование, но скажите мне, если этот пример выглядит так, как вы? Вы ищете:

combined_list = []

print(combined_list)

list_1 = [14, 17, 12, 16, 18, 0, 9, 11, 8,  5]
combined_list.append(list_1)
print(combined_list)

list_2 = [12, 9, 11, 4, 5]
combined_list.append(list_2)
print(combined_list)

list_3 = [2, 14, 7]
combined_list.append(list_3)
print(combined_list)

list_4 = [4, 2, 17, 9, 9, 11, 15, 14, 14]
combined_list.append(list_4)
print(combined_list)
0 голосов
/ 06 ноября 2019
d = [a,b,c] will put them in a list of lists 

, чтобы превратить его в массив:

import numpy as np
np.array(d)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...