100

私は持っている:

count = 0
i = 0
while count < len(mylist):
    if mylist[i + 1] == mylist[i + 13] and mylist[i + 2] == mylist[i + 14]:
        print mylist[i + 1], mylist[i + 2]
    newlist.append(mylist[i + 1])
    newlist.append(mylist[i + 2])
    newlist.append(mylist[i + 7])
    newlist.append(mylist[i + 8])
    newlist.append(mylist[i + 9])
    newlist.append(mylist[i + 10])
    newlist.append(mylist[i + 13])
    newlist.append(mylist[i + 14])
    newlist.append(mylist[i + 19])
    newlist.append(mylist[i + 20])
    newlist.append(mylist[i + 21])
    newlist.append(mylist[i + 22])
    count = count + 1
    i = i + 12

newlist.append()ステートメントをいくつかのステートメントにしたかったのです。

4

7 に答える 7

256

いいえ。シーケンス全体を追加する方法は ですlist.extend()

>>> L = [1, 2]
>>> L.extend((3, 4, 5))
>>> L
[1, 2, 3, 4, 5]
于 2013-05-18T06:43:36.213 に答える
5

いいえ。

まず、appendは関数であるためappend[i+1:i+4]、シーケンスではないもののスライスを取得しようとしているため、記述できません。(その要素を取得することもできません:append[i+1]同じ理由で間違っています。) 関数を呼び出すとき、引数は丸括弧で囲みます: ()

第二に、あなたがしようとしているのは、「シーケンスを取り、その中のすべての要素をこの他のシーケンスの最後に元の順序で配置する」ことです。それは綴られていextendます。appendは「これを取り、それがリストであっても単一のアイテムとしてリストの最後に置きます」. (リストは一種のシーケンスであることを思い出してください。)

ただし、 は、角かっこ (シーケンスからスライスを取得するため) と中かっこ (オブジェクトi+1:i+4を作成するため) の内側にのみ現れる特別な構造であることに注意する必要があります。dict関数に渡すことはできません。だから、それではできませんextend。これらの値のシーケンスを作成する必要があり、これを行う自然な方法はrange関数を使用することです。

于 2013-05-18T07:11:57.120 に答える
5

次のこともできます。

newlist += mylist[i:i+22]
于 2014-02-28T00:16:25.443 に答える