繁体   English   中英

[:]如何在python中工作?

[英]How does [:] work in python?

它复制一份清单吧? 但在代码中我正在看它的x = x[:]我不明白。 如何将两个副本称为同一个东西?

首先评估权限,将其置于临时变量中,并将x重新分配给临时变量。 当然,你永远不会看到它。

回答你的问题“[:]如何在python中工作?” 在这个特定的表达本身的背景下有点棘手

x = x[:]

这不太可能发生,因为它真的像是说a = a

你更有可能看到类似的东西

a = x[:]

用简单的单词表示x引用的列表的副本并将其分配给a

如果你只是这样做

a = x

两个变量都将引用相同的位置,并且对任一变量的任何更改都将反映在两者中。

如果您不使用冒号表示法会发生以下情况,例如a = x

In [31]: x = range(5)
In [32]: a = x

In [33]: a
Out[33]: [0, 1, 2, 3, 4]

In [34]: x
Out[34]: [0, 1, 2, 3, 4]

In [35]: a[3] = 99    # I am making a change in a

In [36]: a
Out[36]: [0, 1, 2, 99, 4]

In [37]: x
Out[37]: [0, 1, 2, 99, 4]   # but x changes too!

将其与a = x[:]

In [38]: x = range(5)
In [39]: a = x[:]

In [40]: a
Out[40]: [0, 1, 2, 3, 4]

In [41]: x
Out[41]: [0, 1, 2, 3, 4]

In [42]: a[3] = -99    

In [43]: a
Out[43]: [0, 1, 2, -99, 4]  # a changes

In [44]: x
Out[44]: [0, 1, 2, 3, 4]    # x does not change

注意:@gnibbler提供了一个简短而完整的示例(在评论中如下),您可能会遇到x = x[:]并且在该上下文中,赋值将有用(尽管我们不知道您遇到的上下文)这最初)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM