यह अजगर में गोल्फ के लिए एक सुझाव सवाल है ।
मान लीजिए कि आपके पास स्ट्रिंग्स की दो सूची हैं, और आप प्रत्येक सूची से संबंधित प्रविष्टियों को संक्षिप्त करना चाहते हैं। जैसे a=list("abcd")
और b=list("1234")
, गणना ["a1","b2","c3","d4"]
।
यह सरणी-आधारित प्रोग्रामिंग भाषाओं में तुच्छ है, जहां ऑपरेशन आमतौर पर सूचियों के लिए सदस्य के रूप में लागू होते हैं। उदाहरण के लिए, मेरी गोल्फ भाषा पिप में , कोड बस है a.b
। लेकिन पायथन में, यह इतना आसान नहीं है।
पाइथोनिक तरीका संभवतः उपयोग करना है zip
और एक सूची समझ (25 वर्ण):
[x+y for x,y in zip(a,b)]
एक अन्य विधि map
एक लंबो फ़ंक्शन (23) के साथ है:
map(lambda x,y:x+y,a,b)
निम्नलिखित मैं (21) के साथ आया सबसे छोटा है:
map("".join,zip(a,b))
क्या कोई छोटी विधि है?
मान लें कि सूचियां एक ही लंबाई की हैं और किसी प्रकार की पुनरावृत्ति की आवश्यकता है (ताकि map
पायथन 3 में कोई वस्तु ठीक हो)।