में सूची को समर्पित करने का सबसे तेज़ तरीका मेरे पास सूचियां हैं और सूचियों को समर्पित करने के लिए तेज़ तरीका चाहिए।dict
मुझे पता है कि सेट() फ़ंक्शन का उपयोग करके अलगाव में एक सूची को कैसे घटाया जाए, लेकिन इस मामले में मैं प्रत्येक सूची को रास्ते में समर्पित करने के लिए एक तेज़ तरीका चाहता हूं।
hello = {'test1':[2,3,4,2,2,5,6], 'test2':[5,5,8,4,3,3,8,9]}
मुझे यह दिखना पसंद है;
hello = {'test1':[2,3,4,5,6], 'test2':[5,8,4,3,9]}
हालांकि मैं जरूरी सूचियों संरक्षित के मूल आदेश की आवश्यकता नहीं है।
मैं इस तरह एक सेट का उपयोग कर की कोशिश की है, लेकिन यह काफी सही नहीं है (यह ठीक से पुनरावृत्ति नहीं कर रहा है और मैं पहली बार कुंजी खो रहा हूँ)
for key, value in hello.items(): goodbye = {key: set(value)}
>>> goodbye
{'test2': set([8, 9, 3, 4, 5])}
संपादित: नीचे PM 2Ring की टिप्पणी के बाद, मैं पहली जगह में डुप्लीकेट से बचने के लिए अलग-अलग निर्देशों को पॉप्युलेट कर रहा हूं। पहले मैं सूचियों का उपयोग कर रहा था, लेकिन सेट का उपयोग करके डिफ़ॉल्ट रूप से डुप्लिकेट को जोड़ा जा सकता है;
>>> my_numbers = {}
>>> my_numbers['first'] = [1,2,2,2,6,5]
>>> from collections import defaultdict
>>> final_list = defaultdict(set)
>>> for n in my_numbers['first']: final_list['test_first'].add(n)
...
>>> final_list['test_first']
set([1, 2, 5, 6])
आप देख सकते हैं, अंतिम आउटपुट एक deduped सेट, के रूप में आवश्यक है।
आदेश संरक्षण में रुचि नहीं है, और यह भी मेरी सूची नहीं है एक निर्देश का हिस्सा। –
यदि आपको आदेश को संरक्षित करने की आवश्यकता नहीं है, तो सेट-आधारित दृष्टिकोण के लिए जाएं: यह सूची-आधारित दृष्टिकोण से अधिक कुशल है, लेकिन यदि आपकी सूचियां छोटी हैं या यदि उनके पास कुछ डुप्ली हैं तो आपको अधिक गति अंतर दिखाई नहीं दे सकता है । और अपने निर्देशों के मूल्यों के रूप में सूचियों के बजाय सेट संग्रहित करने पर विचार करें। OTOH, _very_ छोटी सूचियों के लिए, सेट-आधारित तरीका _slower_ हो सकता है। इसके अलावा, सूचियों की तुलना में थोड़ा और स्मृति का उपयोग करता है। –
@ पीएम 2 रिंग मैं अंत में सेट का उपयोग करने के साथ चला गया, इसलिए पहली जगह में डुप्लिकेट से बचा। सेट में जोड़ने के लिए डिफॉल्टडिक्ट (सेट) और .add (n) चाल है। क्यू अद्यतन –