मैं एक अजगर सूची जो कुंजी/मान के जोड़े रखती है:प्रति कुंजी एकाधिक मानों के साथ शब्दकोश रूपांतरण में सूची?
l=[ [1, 'A'], [1, 'B'], [2, 'C'] ]
मैं एक शब्दकोश है, जहां कुंजी प्रति एक से अधिक मान एक टपल में एकत्रित की जाएगी में सूची परिवर्तित करना चाहते हैं:
{ 1:('A', 'B'), 2:('C',) }
पुनरावृत्ति समाधान तुच्छ है:
l=[ [1, 'A'], [1, 'B'], [2, 'C'] ]
d={}
for pair in l:
if d.has_key(pair[0]):
d[pair[0]]=d[pair[0]]+tuple(pair[1])
else:
d[pair[0]]=tuple(pair[1])
print d
{1: ('A', 'B'), 2: ('C',)}
वहाँ एक और अधिक सुंदर, इस कार्य के लिए pythonic समाधान है?
एस/multilpe/एकाधिक – vstrien
'has_key' के कूड़ेदान की राह पर है पायथन इतिहास - यदि आपको किसी नियम में किसी कुंजी के अस्तित्व के लिए परीक्षण करना होगा, तो कृपया नए वाक्यविन्यास का उपयोग करें, यदि कुंजी में कुंजी है: '। लेकिन आपके प्रश्न का "ए" जवाब @ यूमिरो का डिफॉल्ट डिक्ट दृष्टिकोण है। – PaulMcG
@vstrien धन्यवाद। '/ G' जोड़ना इसे और अधिक सामान्य बना देगा :-) –