python - a=[1,2,3,4,5],b=a和b=a[:],有区别么?
ringa_lee
ringa_lee 2017-04-18 09:23:15
0
3
967
ringa_lee
ringa_lee

ringa_lee

répondre à tous(3)
迷茫

Vous l'appelez

b.append(6)
print (a, b)

Vous pouvez voir la différence :

  • Le premier passe une référence

  • Ce dernier est une copie

大家讲道理
  • b=a fera référence à b l'objet a

    référencé par
  • a[:] créera une copie de a, donc b=a[:] laissera b faire référence à cette copie, c'est-à-dire que b et a font maintenant référence à des objets différents, mais ceux-ci deux objets sont égaux (pas identiques mais équivalents)

C'est pourquoi en surface il ne semble y avoir aucune différence entre les deux, mais si c'est le premier, si on change b ou a les deux seront affectés, car ils font référence au même objet, mais ces derniers ne s'affectent pas, car les deux font référence à des objets différents. L'exemple de @hsfzxjy consiste à le souligner, et vous pouvez découvrir la différence en faisant des expériences.


Questions auxquelles j'ai répondu : Python-QA

Ty80

Python a une fonction appelée id qui peut obtenir l'adresse d'un objet. Elle sera claire si vous l'imprimez. Direct = est une affectation de référence, faisant référence à l'objet d'origine ; tandis que [:] est une redérivation, qui générera un nouvel objet

a=[1,2,3,4,5]
b=a
c=a[:]
print id(a),id(b),id(c)
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!