उपाय
हाँ तुम कर सकते हो:
l = L[1::2]
और यह सब है। परिणाम में निम्नलिखित पदों पर रखे गए तत्व शामिल होंगे ( 0
-बेड, इसलिए पहला तत्व स्थिति में है 0
, दूसरा 1
आदि):
1, 3, 5
इसलिए परिणाम (वास्तविक संख्या) होगा:
2, 4, 6
व्याख्या
[1::2]
अंत में बस सूची टुकड़ा करने की क्रिया के लिए एक अंकन है। आमतौर पर यह निम्नलिखित रूप में होता है:
some_list[start:stop:step]
यदि हम छोड़ दिया है start
, तो डिफ़ॉल्ट ( 0
) का उपयोग किया जाएगा। तो पहला तत्व (स्थिति में 0
, क्योंकि अनुक्रमणिका- 0
आधारित हैं) का चयन किया जाएगा। इस मामले में दूसरा तत्व चुना जाएगा।
क्योंकि दूसरा तत्व छोड़ा गया है, डिफ़ॉल्ट का उपयोग किया जा रहा है (सूची का अंत)। इसलिए सूची को दूसरे तत्व से अंत तक पुनरावृत्त किया जा रहा है ।
हमने तीसरा तर्क ( step
) भी दिया है 2
। जिसका मतलब है कि एक तत्व का चयन किया जाएगा, अगले को छोड़ दिया जाएगा, और इसी तरह ...
तो, इस मामले में योग करने का [1::2]
मतलब है:
- दूसरा तत्व लें (जो, वैसे, एक विषम तत्व है, यदि आप सूचकांक से न्याय करते हैं),
- एक तत्व को छोड़ें (क्योंकि हमारे पास है
step=2
, इसलिए हम एक को छोड़ रहे हैं, step=1
जिसके विपरीत डिफ़ॉल्ट है),
- अगला तत्व लें,
- दोहराएँ चरण 2. -3। जब तक सूची का अंत नहीं हो जाता,
EDIT : @PreetKukreti ने पायथन की सूची को काटते हुए अंकन पर एक और स्पष्टीकरण के लिए एक लिंक दिया। यहाँ देखें: पायथन के स्लाइस अंकन की व्याख्या करें
एक्स्ट्रा - के साथ काउंटर की जगह enumerate()
अपने कोड में, आप स्पष्ट रूप से काउंटर बनाएं और बढ़ाएं। पायथन में यह आवश्यक नहीं है, क्योंकि आप इसका उपयोग करके कुछ पुनरावृत्ति कर सकते हैं enumerate()
:
for count, i in enumerate(L):
if count % 2 == 1:
l.append(i)
उपरोक्त ठीक उसी उद्देश्य से कार्य करता है जैसा आप उपयोग कर रहे हैं।
count = 0
for i in L:
if count % 2 == 1:
l.append(i)
count += 1
for
पायथन में काउंटर के साथ छोरों का अनुकरण करने पर अधिक : 'छोरों' के लिए पायथन में सूचकांक तक पहुंचना