#python #arrays #list #numpy
Вопрос:
Предположим, у меня есть следующие массивы
a = [1, 2, 3]
b = [4, 5, 6]
И я создал список
c = [(1,4), (1,5), (1,6), (2,4), (3,5), (2,6), (3,4), (3,5), (3,6)]
Как я могу создать два списка следующим образом:
a = [1, 1, 1, 2, 2, 2, 3, 3, 3]
b = [4, 5, 6, 4, 5, 6, 4, 5, 6]
Ответ №1:
Вы можете zip
распаковать кортеж здесь.
a, b = zip(*c)
print(a) # (1, 1, 1, 2, 3, 2, 3, 3, 3)
print(b) # (4, 5, 6, 4, 5, 6, 4, 5, 6)
Поскольку numpy помечен, вы можете напрямую генерировать необходимые данные, используя np.repeat
и np.tile
a = [1, 2, 3]
b = [4, 5, 6]
a = np.repeat(a, 3)
b = np.tile(b, (3, ))
print(a) # array([1, 1, 1, 2, 2, 2, 3, 3, 3])
print(b) # array([4, 5, 6, 4, 5, 6, 4, 5, 6])
Ответ №2:
a=[]
b=[]
for i in c:
a.append(i[0])
b.append(i[1])
Ответ №3:
Преобразуйте c в массив numpy, первый столбец-это a, второй столбец-b
c = np.array(c)
a = c[:, 0]
b = c[:, 1]