【发布时间】:2012-06-09 18:47:53
【问题描述】:
我仔细阅读了很多内容,但对于我试图理解的概念,我没有明确的答案。
在Python中,如果我取一个列表,比如:
L1=['muffins', 'brownies','cookies']
然后尝试使用代码替换指向列表中对象的第一个指针,即“松饼”:
L1[0:1] = 'cake'
我会得到一个列表 L1:
['c', 'a', 'k', 'e', 'brownies', 'cookies']
但是,如果我采用相同的列表并执行操作(现在使用字符串 cake 中的 4 个元素):
L1[0:4] = ['cake'] # presumably, it's now passing the string cake within a list? (it passed into the modified list shown above)
我得到了我最初想要的输出:
['cake', 'brownies', 'cookies']
谁能解释一下为什么会这样? 我假设当我最初拿蛋糕时没有将它放在“列表”中,它会将字符串分解为单独的字符,以存储为对这些字符的引用,而不是对字符串的单个引用......
但我不完全确定。
【问题讨论】:
-
你的最后一个例子
L1[0:4] = ['cake']对我来说产生['cake'],而不是python 2.6 上的['cake', 'brownies', 'cookies']。 -- 另请注意,由于您已经有 5 个赞成票,显然您提出了一个很好的问题 :) -
啊,最后一个例子是关于已经修改过的代码 - 如,而不是使用:'L1=['muffins', 'brownies','cookies']',我正在使用 'L1 = ['c', 'a', 'k', 'e', 'brownies', 'cookies']' 执行最后一个示例。
标签: python string indexing slice