ठीक है, क्षमा करें अगर मेरी समस्या थोड़ा मोटा लगता है। मैं इसे एक लाक्षणिक तरीके से समझाने की कोशिश करूंगा, मुझे उम्मीद है कि यह संतोषजनक है।पायथन में बड़ी संख्या में मूल्यों को बढ़ाने का सबसे प्रभावी तरीका क्या है?
10 बच्चे।
5 बक्से।
प्रत्येक बच्चा तीन बक्से चुनता है।
प्रत्येक बॉक्स खोला गया है:
- यदि इसमें कुछ शामिल है, इस बच्चे को चयनित सभी बच्चे 1 बिंदु
- अन्यथा, कोई भी बिंदु नहीं मिलता है।
मेरा प्रश्न जो मैंने बोल्ड में रखा है उसके बारे में है। क्योंकि मेरे कोड में, बहुत सारे बच्चे और बहुत से बक्से हैं।
children = {"child_1" : 0, ... , "child_10": 0}
gp1 = ["child_3", "child_7", "child_10"] #children who selected the box 1
...
gp5 = ["child_2", "child_5", "child_8", "child_10"]
boxes = [(0,gp1), (0,gp2), (1,gp3), (1,gp4), (0,gp5)]
for box in boxes:
if box[0] == 1: #something inside
for child in box[1]:
children[child] += 1
मैं के बारे में मुख्य रूप से चिंता पाश कि प्रत्येक बच्चे को एक अतिरिक्त अंक प्रदान करती है के लिए:
वर्तमान में, मैं इस प्रकार आगे बढ़ें। क्योंकि मेरे अंतिम कोड में, मेरे पास कई बच्चे हैं, मुझे डर है कि ऐसा करने से कार्यक्रम धीमा हो जाएगा।
क्या एक ही समूह के सभी बच्चों के लिए एक और अधिक प्रभावी तरीका हो सकता है?
यह उचित रूप से कुशल दिखता है। क्या आप जानते हैं कि यह बहुत धीमी है? – zch
मुझे लगता है कि पूरी प्रक्रिया कई बार दोहराई जाती है। बक्से या समूह अक्सर बदलते हैं? – user2722968
"कितने, कई बच्चे" हैं? एक चीज जो आप कर सकते हैं वह 'बच्चों' शब्दकोष के बजाय 'संग्रह। काउंटर' का उपयोग करना है, विशेष रूप से जिस तरह से आप इसे शुरू कर रहे हैं (लेकिन आप बच्चों की सूची के आधार पर 'dict' समझ' का भी उपयोग कर सकते हैं। –