दिलचस्प पोस्ट
JSONObject पर पुनरावृति कैसे करें? अजगर फ़िल्टर के बराबर () दो आउटपुट सूचियों (अर्थात सूची का विभाजन) हो रहा है मापदंडों के साथ डीजेन्गा रिटर्न डायरेक्ट () कोई एक्जीक्यूटेबल मेलिंग कमांड "dotnet-ef" नहीं मिला एमईएफ और एमएएफ (सिस्टम.एडइन) के बीच चयन करना सी ++ में स्ट्रिंग और चार प्रकारों के बीच का अंतर सूचना पट्टी में एनीमेशन कस्टम व्यू एक पाठ फ़ाइल में स्ट्रिंग्स का एक ArrayList लिखने के लिए कैसे? आइवी, मास्टर कॉन्फिगरेशन क्या है और यह क्यों नहीं jvyaml खींच रहा है? एक UILabel के NSAttributedString में टैप-सक्षम "लिंक" बनाएं? PHP ओपीकाचे का उपयोग कैसे करें? जावास्क्रिप्ट regex पैटर्न चर के साथ सम्मिलित करें क्रॉस डोमेन अजाक्स अनुरोध कस्टम सत्यापन विशेषता कैसे बनाएं? jQuery टॉगल सीएसएस?

प्रत्येक सूची तत्व पर ईटी () कॉल कॉल करें?

मेरे पास संख्यात्मक स्ट्रिंग्स के साथ एक सूची है, जैसे:

numbers = ['1', '5', '10', '8']; 

मैं हर सूची तत्व को पूर्णांक में कनवर्ट करना चाहता हूं, इसलिए यह इस प्रकार दिखता है:

 numbers = [1, 5, 10, 8]; 

मैं इसे एक पाश का उपयोग कर कर सकता हूं, जैसे:

 new_numbers = []; for n in numbers: new_numbers.append(int(n)); numbers = new_numbers; 

क्या यह इतना बदसूरत होना चाहिए? मुझे यकीन है कि यह कोड की एक पंक्ति में ऐसा करने के लिए एक और अजगर तरीका है। कृपया मेरी मदद करें।

वेब के समाधान से एकत्रित समाधान "प्रत्येक सूची तत्व पर ईटी () कॉल कॉल करें?"

यह सूची सूची के लिए है:

 numbers = [ int(x) for x in numbers ] 

अजगर 2.x में एक अन्य दृष्टिकोण map का उपयोग करना है:

 numbers = map(int, numbers) 

नोट: पायथन 3.x map एक मैप ऑब्जेक्ट लौटाता है जो आप चाहें तो सूची में कनवर्ट कर सकते हैं:

 numbers = list(map(int, numbers)) 

सिर्फ एक बिंदु,

 numbers = [int(x) for x in numbers] 

सूची की समझ अधिक स्वाभाविक है, जबकि

 numbers = map(int, x) 

ज्यादा तेज़ है।

शायद अधिकांश मामलों में इससे कोई फर्क नहीं पड़ेगा

उपयोगी पठन: एलपी बनाम नक्शा

यदि आप किसी फ़ंक्शन या विधि से उन पूर्णांक पारित करने का इरादा रखते हैं, तो इस उदाहरण पर विचार करें:

 sum(int(x) for x in numbers) 

यह निर्माण जानबूझकर अदम के द्वारा उल्लिखित सूची आकांक्षाओं के समान है। वर्ग कोष्ठक के बिना, इसे जनरेटर अभिव्यक्ति कहा जाता है, और एक विधि से तर्कों की एक सूची को पारित करने का एक बहुत ही स्मृति-कुशल तरीका है। एक अच्छी चर्चा यहां उपलब्ध है: जनरेटर अभिव्यक्ति बनाम सूची समझ

दूसरा रास्ता,

 for i, v in enumerate(numbers): numbers[i] = int(v) 

पायथन 3 में इसे बनाने का दूसरा तरीका:

numbers = [*map(int, numbers)]