Maison  >  Questions et réponses  >  le corps du texte

python - a=[1,2,3,4,5],b=a和b=a[:],有区别么?

ringa_leeringa_lee2742 Il y a quelques jours970

répondre à tous(3)je répondrai

  • 迷茫

    迷茫2017-04-18 09:25:15

    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

    répondre
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:25:15

    • 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

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-18 09:25:15

    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)

    répondre
    0
  • Annulerrépondre