python html - بيثون صفيف مع مؤشرات السلسلة




title wbr (3)

هل من الممكن استخدام السلاسل كمؤشرات في صفيف في python؟

فمثلا:

myArray = []
myArray["john"] = "johns value"
myArray["jeff"] = "jeffs value"
print myArray["john"]

Answers

أفضل من ذلك ، حاول OrderedDict (على افتراض أنك تريد شيء مثل قائمة). أقرب إلى قائمة من نظام أساسي لأن المفاتيح تحتوي على أمر مثلما تحتوي عناصر القائمة على أمر. مع dict النظامية ، المفاتيح لها ترتيب إجباري.

لاحظ أن هذا متاح في Python 3 و 2.7. إذا كنت ترغب في استخدامها مع إصدار سابق من Python ، يمكنك العثور على وحدات قابلة للتثبيت للقيام بذلك.


ما تريده يسمى صفيف جمعيات . في بيثون تسمى هذه dictionaries .

يتم العثور على القواميس في بعض الأحيان بلغات أخرى باسم "الذكريات الترابطية" أو "المصفوفات الترابطية". على عكس المتواليات ، التي تتم فهرستها من خلال مجموعة من الأرقام ، يتم فهرسة القواميس بواسطة مفاتيح ، والتي يمكن أن تكون أي نوع غير قابل للتغيير . سلاسل وأرقام يمكن أن تكون دائما مفاتيح.

myDict = {}
myDict["john"] = "johns value"
myDict["jeff"] = "jeffs value"

طريقة بديلة لإنشاء العبارة أعلاه:

myDict = {"john": "johns value", "jeff": "jeffs value"}

الوصول إلى القيم:

print myDict["jeff"] # => "jeffs value"

الحصول على المفاتيح (في Python v2):

print myDict.keys() # => ["john", "jeff"]

إذا كنت تريد معرفة المزيد حول قاموس python internals ، فإنني أوصيك بعرض الفيديو هذا لمدة 25 دقيقة: https://www.youtube.com/watch?v=C4Kc8xzcA68 . يطلق عليه "The Mighty Dictionary".


أعتقد باستخدام myObj.constructor == الكائن و myArray.constructor == المصفوفة هي أفضل طريقة. ما يقرب من 20x أسرع من استخدام toString (). إذا قمت بتوسيع الكائنات مع الصانعين الخاصين بك وتريد أن تعتبر هذه الإبداعات "كائنات" كذلك من هذا لا يعمل ، ولكن بطريقة أخرى بطريقة أسرع. typeof هو بنفس سرعة طريقة المنشئ ولكن typeof [] == 'object' بإرجاع true والذي غالباً ما يكون غير مرغوب فيه. http://jsperf.com/constructor-vs-tostring

شيء واحد هو أن نلاحظ أن null.constructor يرمي خطأ حتى إذا كنت قد تحقق من القيم الفارغة عليك القيام به أولا إذا (testThing! == فارغة) {}





python arrays list dictionary