Py学习  »  Python

Python-如何根据索引将数组的某些元素放到其他数组中

HungryBird • 5 年前 • 1546 次点击  

我有一张单子 test=[a, b, c, d, e, f, g, h, i]

预期结果: list1=[a, d, g], list2=[b, e, h], list3=[c, f, i] ,它们的索引是 index1=[0,3,6] index2=[1,4,7] index3=[2,5,8] ,实际上indexs_list没有定义,我只是想用它们来很好地描述这个问题

我有点不知道,能帮忙吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/55495
 
1546 次点击  
文章 [ 4 ]  |  最新文章 5 年前
Pitto
Reply   •   1 楼
Pitto    5 年前

我想你是从Python开始的。

因此,我想建议一个非常简单的解决方案,仅使用Python基础:

list_1_indexes = [0,3,6]
list_2_indexes = [1,4,7]
list_3_indexes = [2,5,8]

test=["a", "b", "c", "d", "e", "f", "g", "h", "i"]

list_1 = []
list_2 = []
list_3 = []

for index in list_1_indexes:
    list_1.append(test[index])

for index in list_2_indexes:
    list_2.append(test[index])

for index in list_3_indexes:
    list_3.append(test[index])


print("list_1:")
print(list_1)
print("\nlist_2:")
print(list_2)
print("\nlist_3:")
print(list_3)

list_1:
['a', 'd', 'g']

list_2:
['b', 'e', 'h']

list_3:
['c', 'f', 'i']
DYZ
Reply   •   2 楼
DYZ    5 年前

list1, list2, list3 = [[test[i] for i in index ] 
                       for index in (index1, index2, index3)]
Grzegorz Skibinski
Reply   •   3 楼
Grzegorz Skibinski    5 年前

numpy :

import numpy as np

l1,l2,l3=np.array(test).reshape(3,-1, order='F')

输出:

>>> print(l1,l2,l3)
['a' 'd' 'g'] ['b' 'e' 'h'] ['c' 'f' 'i']

裁判: https://docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.html

rdas
Reply   •   4 楼
rdas    5 年前

使用香草蟒蛇:

test=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']

my_lists = [[], [], []]
for mod in range(3):
    my_lists[mod] = [elem for i, elem in enumerate(test) if i % 3 == mod]

list0 = my_lists[0]
list1 = my_lists[1]
list2 = my_lists[2]

print(list0, list1, list2)

输出:

['a', 'd', 'g']
['b', 'e', 'h']
['c', 'f', 'i']