में एक सूची से एक यादृच्छिक sublist निकाला जा रहा है मैं एक अजगर शब्दकोश है:इस प्रकार अजगर
{'APPLE_PROVIDERS' : ["some", "provider","can","be", "null"],
....
}
क्या मैं करना चाहता हूँ सूची में से एक यादृच्छिक sublist एक कुंजी के (जो एक मान है) प्राप्त है। सिर्फ एक तत्व नहीं, बल्कि एक पूरी तरह यादृच्छिक sublist। यहाँ मैं क्या करने की कोशिश की है:
a_list = a_dict.get('APPLE_PROVIDERS', "")
for item in a_list[randrange(0,len(a_list)) : randrange(0,len(a_list))]:
...do something..
यह बात दो समस्याएं हैं:
(0,0) तो सूची खाली है, या यदि dict देखने में विफल रहता है, इस कार्यक्रम में विफल रहता है के बाद से randrange है तर्क के रूप में, जिसके परिणामस्वरूप
कई बार दोनों randrange() कॉल समान संख्या उत्पन्न करते हैं, खासकर जब सूची छोटी होती है। यह एक खाली सूची देता है। उदाहरण के लिए a_list [5: 5]
तो ऊपर दिए गए मामलों के साथ यादृच्छिक उपन्यास प्राप्त करने का सबसे अच्छा तरीका क्या है? इसके अलावा, मुझे आदेश के बारे में परवाह नहीं है। कुछ भी काम करता है। मैं सिर्फ 0,1 के एक पूरी तरह से यादृच्छिक sublist चाहते हैं ... जब तक लूप शुरू होता है हर बार लेन (a_list) तत्वों तक।
यदि सूची किसी अन्य डेटा संरचना में बदला जा सकता है जो समान तत्व रख सकता है, जो मेरे लिए भी काम करता है।
के possiblity नहीं चाहते हैं, तो: आप मूल सूची से सटे तत्वों की एक अनियमित रूप से चुने अनुक्रम करना चाहते हैं? – dhke
अपने यादृच्छिक उपन्यास में, क्या तत्व दोहराए जा सकते हैं? आपकी यादृच्छिक उपन्यास कितनी लंबाई होनी चाहिए? – imp9