سؤال

ولدي علامة سلسلة القائمة.

واني اسعى الى تهيئة قاموس مع مفتاح كسلسلة العلامة والقيم حيث أن مؤشر مجموعة.

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})
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top