আমি একটি অভিধান তৈরি করতে চাই যার মান তালিকা। উদাহরণ স্বরূপ:
{
1: ['1'],
2: ['1','2'],
3: ['2']
}
যদি আমি করি:
d = dict()
a = ['1', '2']
for i in a:
for j in range(int(i), int(i) + 2):
d[j].append(i)
আমি একটি কী-এরর পেয়েছি, কারণ ডি [...] তালিকা নয়। এই ক্ষেত্রে, আমি অভিধানটি আরম্ভ করার জন্য একটি নিয়োগের পরে নিম্নলিখিত কোডটি যুক্ত করতে পারি।
for x in range(1, 4):
d[x] = list()
এই কাজ করতে একটি ভাল উপায় আছে কি? আসুন বলুন যে আমি দ্বিতীয় for
লুপটিতে না আসা পর্যন্ত আমার যে কীগুলি দরকার তা আমি জানি না । উদাহরণ স্বরূপ:
class relation:
scope_list = list()
...
d = dict()
for relation in relation_list:
for scope_item in relation.scope_list:
d[scope_item].append(relation)
একটি বিকল্প তারপরে প্রতিস্থাপন করা হবে
d[scope_item].append(relation)
সঙ্গে
if d.has_key(scope_item):
d[scope_item].append(relation)
else:
d[scope_item] = [relation,]
এই হ্যান্ডেল করার সেরা উপায় কি? আদর্শভাবে, সংযোজন "কেবলমাত্র কাজ করবে"। আমি খালি তালিকার একটি অভিধান চাই তা প্রকাশ করার কোনও উপায় আছে কি না, যদিও আমি প্রথম তালিকাটি তৈরি করার সময় প্রত্যেকটি কী জানি না?
collections
মডিউল এছাড়াও উদাহরণস্বরূপ এই ভাবে কাজ করে,collections.OrderedDict
।