2

これ(編集済み)を見たとき、私はdocutilソースコード(Pythonにあります)を見ていました:

def __init__(self, **attributes):
    for att, value in attributes.items():
        att = att.lower()
        if att in self.list_attributes:
            # mutable list; make a copy for this node
            self.attributes[att] = value[:]
        else:
            self.attributes[att] = value

私が話している行はこれです:

            self.attributes[att] = value[:]

「[:]」は正確には何をしますか? その上のコメントはある種のコピーを示唆していますが、私のグーグル検索はそれほど成功していませんでした。それが言語機能なのか、何らかのトリック/ショートカットなのかわかりません。

4

1 に答える 1

8

リストのコピーを作成します(辞書ではありません)

この表記法は「スライス」と呼ばれます。コピーの開始位置と終了位置を指定することもできます。何も指定しない場合 (コードの抜粋のように)、最初の要素から最後の要素までコピーされます。

たとえばmylist[1:]、最初の要素を省略してリスト全体をコピーします。

包括的な説明については、こちらをご覧ください。

于 2012-07-29T17:16:22.297 に答える