में मानों की सूची पर फ़ंक्शंस की एक सूची लागू करें क्या ज़िप करने के लिए बेवकूफ और/या सुरुचिपूर्ण पायथन है और मूल्यों की सूची में फ़ंक्शंस की एक सूची लागू कर रहा है?पिन और पाइथन
उदाहरण के लिए, मान लीजिए आप कार्यों की एक सूची है:
functions = [int, unicode, float, lambda x: '~' + x + '~']
और मानों की सूची:
values = ['33', '\xc3\xa4', '3.14', 'flange']
वहाँ ith मूल्य और वापसी के लिए ith समारोह लागू करने के लिए एक रास्ता है इस बदसूरत सूची समझ से परहेज करते हुए, परिवर्तित मूल्यों की एक ही लंबाई की एक सूची?
[functions[i](values[i]) for i in range(len(functions))] # <- ugly
क्या मैं चाहता हूँ की तरह zip()
+ map()
(zipmap()
!) मूल्यों की सूची के साथ कार्यों सूची कुछ है और कार्यों उनकी बनती मूल्यों को लागू किया जा है। मैंने सोचा कि itertools
कुछ प्रासंगिक पेशकश कर सकता है, लेकिन imap
और starmap
जैसे फ़ंक्शंस एक ही फ़ंक्शन को एक पुनरावर्तनीय पर मैप करने के लिए हैं, किसी अन्य पुनरावर्तनीय पर फ़ंक्शंस का एक पुनरावर्तनीय नहीं है।
मैं कहना है कि काम आप कर रहे हैं इच्छा तरह का बदसूरत ही है, इसलिए एक उम्मीद करनी चाहिए कार्यान्वयन होने के लिए इच्छुक हूँ - के रूप में आप इसका न्याय करते हैं - बदसूरत भी। – msw
@msw मुझे लगता है कि यह कार्य सामान्य है - सीएसवी फ़ाइल या इसी तरह से कच्चे बाइटस्ट्रिंग्स को पाइथन ऑब्जेक्ट्स में बदलने के बारे में सोचें, इसलिए फ़ंक्शंस की सूची कॉलम मैपिंग से आ सकती है जिसमें कॉलम डेटा जैसे अन्य मेटाडेटा होते हैं। –
@msw: अपने सिर को एक औसत डेटाबेस के अंदर चिपकाएं और देखें कि किसी डेटाबेस को बदसूरत कैसे हो सकता है जब किसी को इसे सत्यापित करने के लिए कुछ बदसूरत कोड लिखने पर परेशान न हो। –