【问题标题】:What does sentence[:] mean here? [duplicate]sentence[:] 在这里是什么意思? [复制]
【发布时间】:2013-12-26 14:11:28
【问题描述】:

我在学习Learnpythonthehardway,在ex40,我遇到了这段代码。

for sentence in snippet, phrase:
    result = sentence[:]

这里的句子[:]我不太理解,尤其是[:]

我试图通过底层测试代码来解决这个问题:

sentence = 'sss errf : fe : eee'
f = 33
result = sentence[:f]
print result

但是什么也没发生,结果和句子一样

那么,聪明的极客们,sentence[:] 在这里是什么意思?

【问题讨论】:

  • 正如@inclement 所解释的,[:] 用于列表,但在本练习中sentence 是一个字符串,所以我不明白他为什么使用[:]

标签: python


【解决方案1】:

这是使用 python 的列表切片语法,简单的意思是“复制整个列表”。

您可能经常使用some_list[:5] 来获取前 5 个元素,或者使用some_list[5:] 来获取从第五个元素开始的所有内容(或者如果您将第零个元素算作第一个元素,则从第六个元素开始,因为 python 列表为零-索引)。如果你这样想,那么语法自然意味着从第一个元素到最后一个元素的所有内容。

这里重要的是,这确实会生成列表的副本,而不是对原始列表的引用。这意味着它可以成为克隆列表的有用方法,它不只是什么都不做。

【讨论】:

  • 另一个重要的注意事项是,尽管它会生成列表的副本,但它仍可能包含子列表的引用,而不是副本。为避免这种情况,请使用copy.deepcopy
猜你喜欢
  • 1970-01-01
  • 2012-04-26
  • 1970-01-01
  • 2015-03-12
  • 1970-01-01
  • 2011-07-25
相关资源
最近更新 更多