No entendimento pessoal da profundidade da cópia (compreensão branco, spray de luz)

Falar sobre uma história

Um dia, o professor nos deu este trabalho armazém bem,
a primeira pergunta: fazer um site, o conteúdo homepage é uma imagem do seu professor favorito, para fazer o seu próprio URL do site pode escrever em seu caderno.
A segunda questão: cálculo de 1 + 1 =? Os resultados deste trabalho escrito em
inteligente eu rapidamente terminou o trabalho, a primeira pergunta, a minha página inicial professor Bodo colocar uma foto URL é www.boduo.com , a segunda questão, contei a resposta é que 1 + 1 = 3.
Na mesma mesa dois Gouzi estúpido, ele não estaria fazendo sua lição de casa,-lo intacto para copiar o meu trabalho, e ele também é o primeiro título URL www.boduo.com , a segunda pergunta a resposta é 3.
Quando ele cópia acabado, eu achei a segunda questão calculou mal, colocou a resposta em dois, dois Gouzi esta resposta estúpida escrita ou 3.
Depois de um tempo, eu vi o professor Yoshizawa, sentindo professores Yoshizawa são muito bonito, colocar a página inicial substituída por Yoshizawa fotos para o professor, é claro, o trabalho em dois website home page Gouzi tornou-se um professor Yoshizawa fotos.
Após a operação de mão, dois Gouzi é professor Aoi punido uma refeição.

No dia seguinte, confuso professor Aoi arranjou o mesmo trabalho.
Eu gostaria toda a dois Gouzi um todo, não colocou a cópia correta do trabalho mostrou-lhe, não achava que ele era mais sábio, a primeira pergunta não escreve diretamente até o meu site, escrever seus próprios sites www.woshiergouzi. COM . Mas o conteúdo do site ou cópia do meu Bodo fotos de professores. A resposta à segunda questão, ele copiou ou 1 + 1 = 3, ha ha ha ha ......
Eu coloquei as respostas em um 1 + 1, 2, e agradar a professora Aoi, o site foi substituída por uma foto dela. URLs Gouzi dois com a sua própria, então ele ainda está dentro da foto professor Bodo, e ele responde 1 + 1 ou 3, ha ha ha ha ha ......
emprego e pagam-se, professor Aoi mantém elogiando o meu trabalho de escrever bem, eu tenho que ficar depois da aula para receber prêmios, enquanto dois Gouzi deixou de limpeza.

A história pode ser um pouco complexo, no primeiro dia pode ser entendida como copiar duas Gouzi rasa minha lição de casa no dia seguinte ele foi copiar profunda minha lição de casa. História URL como id do que em python.

Primeiro de tudo o que precisamos saber é o mesmo como se dois da mesma lista ou dicionário de id, quando uma lista ou mudança dicionário, o outro também será alterado, e os mesmos dois números, cordas, id valor booleano é sempre a mesma.

Nós olhamos cópia superficial:

list1 = [1, 2, 'aloha', [11, 22]]
list2 = list1.copy()
print(id(list1) == id(list2))
for i in range(4):
    print(list1[i], id(list1[i]) == id(list2[i]))
#输出结果为:
'''
False
1 True
2 True
aloha True
[11, 22] True
'''

Sabemos que de acordo com o resultado da impressão de list1 e list2 id é diferente, mas números de identificação, cordas e listas de duas listas são os mesmos para dentro.
Dentro do lista1 1,2, 'aloha' é imutável, [11, 22] é variável.
Portanto, se não modificar [11, 22], independentemente de quaisquer modificações list1, list2 não vai mudar.
Se você modificar dentro list1 [11, 22], em seguida, dentro list2 [11, 22] vai mudar.

Então, olhamos cópia profunda:

import copy
list1 = [1, 2, 'aloha', [11, 22]]
list2 = copy.deepcopy(list1)
print(id(list1) == id(list2))
for i in range(4):
    print(list1[i], id(list1[i]) == id(list2[i]))
# 输出结果为:
'''
False
1 True
2 True
aloha True
[11, 22] False
'''

Os resultados de impressão pode ser visto, e a única diferença é cópia superficial, list1 e list2 em [11, 22] não é o mesmo ID
Portanto, se uma cópia em profundidade, mesmo que a mudança na list1 aninhada [11, 22] ( esta é uma lista de variáveis), mas [11, 22] diferente sua list1 id e list2 dentro, então o interior mudança list1 [11, 22], list2 não vai mudar.

Acho que você gosta

Origin www.cnblogs.com/west-yang/p/12556559.html
Recomendado
Clasificación