3

"同じ長さのリスト list1 と list2 が与えられた場合、list1 の最初の要素、list2 の最初の要素、list1 の 2 番目の要素、list2 の 2 番目の要素から構成される新しいリストを作成し、 (つまり、新しいリストは、list1 と list2 の交互の要素で構成されている必要があります。たとえば、list1 に [1, 2, 3] が含まれ、list2 に [4, 5, 6] が含まれている場合、新しいリストには次のものが含まれている必要があります)。 [1, 4, 2, 5, 3, 6]. 新しいリストを変数 list3 に関連付けます。"

    list1 = []
    list2 = []
    list3 = []
    for i in range(len(list3)):
        list3.append(list1)
        list3.append(list2)

これは完全に間違っていると確信しています。何を改善すればよいですか?ところで、これには len と range の両方が含まれている必要があると思います。

4

4 に答える 4

5

lenorを使用するのではなく、リスト内包表記でそれを行いrangeます。例えば:

>>> list1 = [1, 2, 3]
>>> list2 = ['a', 'b', 'c']
>>> zip(list1, list2)
[(1, 'a'), (2, 'b'), (3, 'c')]
>>> [x for pair in zip(list1, list2) for x in pair]
[1, 'a', 2, 'b', 3, 'c']
于 2013-03-26T05:25:39.300 に答える
5
>>> from itertools import chain
>>> list1 = [1, 2, 3]
>>> list2 = [4, 5, 6]
>>> list(chain.from_iterable(zip(list1, list2)))
[1, 4, 2, 5, 3, 6]
于 2013-03-26T05:28:17.860 に答える
2
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = []

for x1, x2 in zip(list1, list2):
    list3.extend([x1, x2])
于 2013-03-26T06:25:18.677 に答える
0

次のスニペットを見てください。おそらく役立つでしょう

>>> list1 = [1,2,3]
>>> list2 = [4,5,6]
>>> list3 = []
>>> for i in range(len(list1)):
...     list3.append(list1[i])
...     list3.append(list2[i])
...
>>> list3
[1, 4, 2, 5, 3, 6]
于 2013-03-26T05:23:34.223 に答える