الثعبان طريقة التحديث القاموس
-
05-07-2019 - |
سؤال
ولدي علامة سلسلة القائمة.
واني اسعى الى تهيئة قاموس مع مفتاح كسلسلة العلامة والقيم حيث أن مؤشر مجموعة.
for i, ithTag in enumerate(tag):
tagDict.update(ithTag=i)
وهذا يعود لي فوق { 'ithTag': 608} <م> 608 هو مؤشر 608th م>
ومشكلتي هي أنه في حين يجري تفسير ط كمتغير، بيثون علاج "ithTag" كسلسلة بدلا من متغير.
وأنا في حيرة، فمن نوع من الصعب جوجل هذا النوع من الأسئلة المحددة. أرجو أن أكون شديد عنوان هذا السؤال بشكل صحيح،
وشكرا!
المحلول
وأنت فعلا تريد أن تفعل هذا:
for i, tag in enumerate(tag):
tagDict[tag] = i
ويتم استخدام طريقة .update () لتحديث قاموس استخدام قاموس آخر، وليس لتغيير مفتاح / قيمة زوج واحد.
نصائح أخرى
إذا كنت تريد أن تكون ذكية:
tagDict.update(map(reversed, enumerate(tag)))
وبفضل بريان للتحديث. هذا هو أسرع على ما يبدو ~ 5٪ من الإصدار تكرارية.
و(تحرير: شكرا سافيريو لافتا جوابي كان غير صحيحة (ثابت الآن) وربما تكون الطريقة الأكثر فعالية / Pythonic سيكون الجواب تورستن ماريك، تعديل طفيف:
tagDict.update((t, i) for (i,t) in enumerate(tag))
)
وانها أونيلينير:
tagDict = dict((t, i) for i, t in enumerate(tag))
وأعتقد أن هذا هو ما تريد القيام به:
d = {}
for i, tag in enumerate(ithTag):
d[tag] = i
وحاول
tagDict[ithTag] = i
وأعتقد أن ما تريده هو هذا:
for i, ithTag in enumerate(tag):
tagDict.update({ithTag: i})