मैं एक सूची p = [[1,2,3],[4,5,6]]
अंतर
उपयोग कर रहा हूँ, तो मुझे क्या करना:
:>>>d=zip(p)
>>>list(d)
[([1, 2, 3],), ([4, 5, 6],)]
हालांकि, क्या मैं वास्तव में चाहते हैं तो इस का उपयोग कर प्राप्त किया जाता है
>>>d=zip(*p)
>>>list(d)
[(1, 4), (2, 5), (3, 6)]
मुझे पता चला है कि सूची नाम से पहले '*' जोड़ना मेरे आवश्यक आउटपुट देता है, लेकिन मैं उनके ऑपरेशन में अंतर नहीं कर सकता। क्या आप अंतर को समझा सकते हैं?
'*' या '**' के साथ एक फ़ंक्शन * परिभाषा * जो आपने उल्लेख किया है वह '*' ऑपरेटर का एक अलग उपयोग है। उस संदर्भ में, इसका उपयोग [वैरैडिक फ़ंक्शंस] (http://en.wikipedia.org/wiki/Variadic_function) बनाने के लिए किया जाता है। वे '*' से संबंधित हैं जो ओपी बात कर रहा है जिसके बारे में 'लागू' ऑपरेटर के लिए सिंटेक्टिक चीनी की तरह अधिक है। दोनों को भ्रमित करना एक बुरा विचार है। –
मैं तर्क दूंगा कि वे एक ही अवधारणा के दो पहलू हैं (हालांकि विभिन्न व्यवहार)। एक मामले में (फ़ंक्शन परिभाषा), आप निर्दिष्ट करते हैं कि फ़ंक्शन एक नाम (तर्क) के तहत समूहित कई तर्क स्वीकार करेगा, जबकि दूसरे में आप कई तर्कों को एक नाम प्रेषित करते हैं। तो, निश्चित रूप से वे अलग हैं, लेकिन वे कड़ाई से सिंटैक्स अवधारणाओं से जुड़े हुए हैं और समझते हैं कि आप दूसरे को समझते हैं। – vermillon
जैसा कि मैंने कहा, वे संबंधित हैं लेकिन क्षेत्र में विशेषज्ञता के कमेंटर्स की कमी के कारण, यह निर्देश के बजाय भ्रमित हो जाएगा। –