沈志明微博,佛坪教育网,杰杰网
>>> charles = {'name': 'charles l. dodgson', 'born': 1832}
>>> lewis = charles
>>> lewis is charles
true
>>> id(charles)
139996185268800
>>> id(lewis)
139996185268800
2.相等性的例子
>>> charles = {'name': 'charles l. dodgson', 'born': 1832}
>>> alex = {'name': 'charles l. dodgson', 'born': 1832}
>>> alex == charles
true
>>> alex is charles
false
>>> id(alex)
139996185193136
>>> id(charles)
139996185268800
复制列表(或多数内置的可变集合)最简单的方式是使用内置的类型构造方法。
>>> l1 = [12,123,22,213,222,1221]
>>> l2 = list(l1)
>>> l2 == l1
true
>>> l2 is l1
false
>>> l1 = [3, [66,55,44], (7,8,9)]
>>> l2 = l1[:]
>>> l1.append(100)
>>> l1
[3, [66, 55, 44], (7, 8, 9), 100]
>>> l1[1].remove(55)
>>> print('l1', l1)
l1 [3, [66, 44], (7, 8, 9), 100]
>>> print('l2', l2)
l2 [3, [66, 44], (7, 8, 9)]
>>> l2[1] += [33,22]
>>> l2[2] += (10,11)
>>> print('l1', l1)
l1 [3, [66, 44, 33, 22], (7, 8, 9), 100]
>>> print('l2', l2)
l2 [3, [66, 44, 33, 22], (7, 8, 9, 10, 11)]
import copy
class bus(object):
def __init__(self, passengers=none):
if passengers is none:
self.passengers = []
if passengers is not none:
self.passengers = list(passengers)
def drop(self, name):
self.passengers.remove(name)
def pick(self, name):
self.passengers.append(name)
bus1 = bus(['alice', 'bill', 'claire', 'david'])
bus2 = copy.copy(bus1)
bus3 = copy.deepcopy(bus1)
bus1.drop('bill')
bus1.pick('tom')
print(bus1.passengers)
print(bus2.passengers)
print(bus3.passengers)
# -------------------------
# bus1 ['alice', 'claire', 'david', 'tom']
# bus2 ['alice', 'claire', 'david', 'tom']
# bus3 ['alice', 'bill', 'claire', 'david']
浅复制时,bus1和bus2,公用了一个列表对象,这个是可变对象
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
新手学习Python2和Python3中print不同的用法
Python基于os.environ从windows获取环境变量
网友评论