2

以下のようなリストがあります。

list = [1, 2, 3, 4, 5, 6, 7, 8, 9 .....]

以下の値を持つ3つのリストに分割したいと思います。

first_list = [1, 4, 7, ...]
second_list = [2, 5, 8,....]
third_list = [3, 6, 9, ...]

私はそれを 3 つの等しいサイズのチャンクに分割したくなく、リストを上記のように分割したいと考えています。どんな助けも役に立ちます。

ありがとう

4

6 に答える 6

7

開始値を変更し、ステップ値を設定して、スライス表記を使用します。

l[start:end:step] 

In [1]: l = [1, 2, 3, 4, 5, 6, 7, 8, 9]

In [2]: [l[start::3] for start in range(3)]
Out[2]: [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

リストを変数に割り当てるには:

first_list, second_list, third_list = [l[i::3]for i in range(3)]
于 2013-05-13T18:48:35.463 に答える
5
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print (my_list[0::3])
print (my_list[1::3])
print (my_list[2::3])

--output:--
[1, 4, 7]
[2, 5, 8]
[3, 6, 9]

また、変数名に list を使用しないでください。自分が何をしているのかがわかるまで、すべての変数名の前に「my」を付けてください。

于 2013-05-13T18:48:39.530 に答える
1
my_list = range(10)
def condition1(x):
    return x%3 == 1

def condition2(x):
    return x%3 == 2

L1,L2,L3 = [],[],[]
#[L1.append(x) if condition1(x) else L2.append(x) if condition2(x) else L3.append(x) for x in my_list]
#made above list comprehension more readable by switching it to a for loop
for item in list:
    if condition1(item): 
         L1.append(item)
    elif condition2(item):
         L2.append(item)
    else:
         L3.append(item)
print L1
print L2
print L3
于 2013-05-13T18:48:32.690 に答える