Python字典"复制值"

Seb*_* F. 2 python docutils

当我看到这个(编辑)时,我正在查看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
Run Code Online (Sandbox Code Playgroud)

我正在谈论的是这一行:

            self.attributes[att] = value[:]
Run Code Online (Sandbox Code Playgroud)

"[:]"究竟做了什么?它上面的评论提示某种副本,但我的谷歌搜索并没有那么成功,我无法确定它是语言功能还是某种特技/快捷方式.

pha*_*t0m 8

它制作了一份清单(不是字典)

符号称为"切片".您还可以指定开始和结束复制的位置,如果您未指定任何内容(如代码提取中),它将从第一个元素复制到最后一个元素.

例如,mylist[1:]将复制省略第一个元素的整个列表.

看看这里有一个全面的解释.