English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
تقوم طريقة fromkeys() بإنشاء قاموس جديد بناءً على سلسلة العناصر المقدمة، يحتوي على القيم المقدمة من المستخدم.
نص طريقة fromkeys() هو:
dictionary.fromkeys(sequence[, value])
يستخدم طريقة fromkeys() اثنين من المعاملات:
sequence - سلسلة العناصر المستخدمة كأكواد جديدة للقاموس
value (اختياري) - القيمة المحددة لكل عنصر في القاموس
يستعيد طريقة fromkeys() قاموسًا جديدًا يحتوي على عناصر سلسلة مقدمة كأساس.
إذا تم تعيين معامل value، فإن كل عنصر في القاموس الجديد سيتم تعيينه إلى القيمة المقدمة.
# مفاتيح الأصوات keys = {'a', 'e', 'i', 'o', 'u'} vowels = dict.fromkeys(keys) print(vowels)
عند تشغيل هذا البرنامج، الناتج يكون:
{'a': None, 'u': None, 'o': None, 'e': None, 'i': None}
# مفاتيح الأصوات keys = {'a', 'e', 'i', 'o', 'u'} value = 'vowel' vowels = dict.fromkeys(keys, value) print(vowels)
عند تشغيل هذا البرنامج، الناتج يكون:
{'a': 'vowel', 'u': 'vowel', 'o': 'vowel', 'e': 'vowel', 'i': 'vowel'}
# مفاتيح الأصوات keys = {'a', 'e', 'i', 'o', 'u'} value = [1] vowels = dict.fromkeys(keys, value) print(vowels) # القيمة المعدلة value.append(2) print(vowels)
عند تشغيل هذا البرنامج، الناتج يكون:
{'a': [1], 'u': [1], 'o': [1], 'e': [1], 'i': [1]} {'a': [1, 2], 'u': [1, 2], 'o': [1, 2], 'e': [1, 2], 'i': [1, 2]}
إذا كانت القيمة المقدمة قابلة للتغيير (يمكن تغيير قيمتها)، مثلالقائمة,القاموسإذا كانت القائمة تحتوي على عنصر قابل للتغيير، فإن كل عنصر في السلسلة سيتم تحديثه عند تغيير العنصر.
هذا لأنه يتم توزيع مراجع إلى نفس العنصر (الذي يشير إلى نفس العنصر في ذاكرة الكمبيوتر).
لتفادي هذا المشكلة، نستخدم فهم القاموس.
# مفاتيح الأصوات keys = {'a', 'e', 'i', 'o', 'u'} value = [1] vowels = { key: list(value) for key in keys } # يمكنك أيضًا استخدام { key: value[:] for key in keys } print(vowels) # القيمة المعدلة value.append(2) print(vowels)
عند تشغيل هذا البرنامج، الناتج يكون:
{'a': [1], 'u': [1], 'o': [1], 'e': [1], 'i': [1]} {'a': [1], 'u': [1], 'o': [1], 'e': [1], 'i': [1]}
في هذا السياق، لكل مفتاح في keys، سيتم إنشاء قائمة جديدة من value، وتُعطى لها.
بشكل أساسي، القيمة ليست تُعطى للعنصر، بل يتم إنشاء قائمة جديدة منها، ثم تُعطى لتكون قائمة في كل عنصر من القائمة في القاموس.