تقنية

UserList في بايثون: هل تتابع إضافات قائمة البداية؟

بعد source.append(12): المصدر 4،8،12 وdata 4،8.
البداية أطول.

UserList تهيئ محتواها بنسخة من قائمة البداية؛ تخزنه في القائمة data. [1]

الخلاصة السريعة

لا في مثالنا؛ إضافة عنصر إلى إحدى القائمتين لا تضيفه إلى الأخرى. [1]

  • UserList تهيئ محتواها بنسخة من قائمة البداية؛ تخزنه في القائمة data. [1]
  • data قائمة فعلية؛ wrapped.data is source تعطي False في تجربتنا، فهما قائمتان مختلفتان. [1]
  • على CPython 3.12.14، source=[4,8] وwrapped=UserList(source)؛ ثم ننفذ source.append(12). [1]
  • بعد الإضافة، source هي [4,8,12]، وwrapped.data ما زالت [4,8]. [1]
  • تحكم متتابع: wrapped.append(16) تجعل data تساوي [4,8,16]، وتبقي source=[4,8,12]؛ المثال قائمة أعداد صحيحة فقط. [1]

تهيئة بنسخة

UserList تهيئ محتواها بنسخة من قائمة البداية؛ تخزنه في القائمة data. [1]

هوية القائمتين

data قائمة فعلية؛ wrapped.data is source تعطي False في تجربتنا، فهما قائمتان مختلفتان. [1]

إضافة إلى المصدر

على CPython 3.12.14، source=[4,8] وwrapped=UserList(source)؛ ثم ننفذ source.append(12). [1]

from collections import UserList source=[4,8] wrapped=UserList(source) source.append(12) print(source,wrapped.data) [1]

بعد wrapped.append(16): المصدر 4،8،12 وdata 4،8،16.
المحتوى مختلف.

القيم والتحكم

بعد الإضافة، source هي [4,8,12]، وwrapped.data ما زالت [4,8]. [1]

wrapped.append(16) print(source,wrapped.data) print(wrapped.data is source) [1]

تحكم متتابع: wrapped.append(16) تجعل data تساوي [4,8,16]، وتبقي source=[4,8,12]؛ المثال قائمة أعداد صحيحة فقط. [1]

المراجع

  1. Python UserList

للتوسع: لغات البرمجة.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.