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 回答