[Python] मैं अजगर में एक सूची को कैसे उलट सकता हूं?



Answers

>>> L = [0,10,20,40]
>>> L[::-1]
[40, 20, 10, 0]

विस्तारित टुकड़ा वाक्यविन्यास पाइथन में अच्छी तरह से समझाया गया है रिलीज 2.3.5 लिए नई प्रविष्टि क्या है

एक टिप्पणी में विशेष अनुरोध से यह सबसे वर्तमान टुकड़ा दस्तावेज है

Question

मैं पाइथन में यह कैसे कर सकता हूं?

array = [0,10,20,40]
for (i = array.length() - 1 ;i >= 0; i--)

मुझे एक सरणी के तत्वों की आवश्यकता है लेकिन अंत से शुरुआत तक।




reversed और list :

>>> list1 = [1,2,3]
>>> reversed_list = list(reversed(list1))
>>> reversed_list
>>> [3, 2, 1]



उलटा हुआ फ़ंक्शन का पालन करें और इसे प्रिंट करें

>>> for element in reversed(your_array):
...     print element



यह सूची को डुप्लिकेट करना है:

L = [0,10,20,40]
p = L[::-1]  #  Here p will be having reversed list

यह सूची में जगह को पीछे हटाना है:

L.reverse() # Here L will be reversed in-place (no new list made)



>>> L = [1, 2, 3, 4]
>>> L = [L[-i] for i in range(1, len(L) + 1)]
>>> L
[4, 3, 2, 1]



संभावित तरीके,

list1 = [3,4,3,545,6,4,34,243]

list1.reverse()

list1[::-1]



यदि आप किसी अन्य चर में उल्टा सूची के तत्वों को संग्रहीत करना चाहते हैं, तो आप revArray = array[::-1] या revArray = list(reversed(array)) उपयोग कर सकते हैं।

लेकिन पहला संस्करण थोड़ा तेज़ है:

z = range(1000000)
startTimeTic = time.time()
y = z[::-1]
print("Time: %s s" % (time.time() - startTimeTic))

f = range(1000000)
startTimeTic = time.time()
g = list(reversed(f))
print("Time: %s s" % (time.time() - startTimeTic))

आउटपुट:

Time: 0.00489711761475 s
Time: 0.00609302520752 s



संगठन मूल्य:

पायथन में, सूचियों के क्रम को भी क्रमबद्ध रूप से छेड़छाड़ की जा सकती है, जो आपके चर को संख्यात्मक / वर्णमाला क्रम में व्यवस्थित कर सकती है:

अस्थायी रूप से:

print(sorted(my_list))

स्थायी:

my_list.sort(), print(my_list)

आप ध्वज "रिवर्स = ट्रू" के साथ सॉर्ट कर सकते हैं:

print(sorted(my_list,reverse=True))

या

my_list.sort(reverse=True), print(my_list)

संगठन के बिना

हो सकता है कि आप मूल्यों को क्रमबद्ध नहीं करना चाहते हैं, लेकिन केवल मानों को उलट दें, फिर हम ऐसा कर सकते हैं:

print(list(reversed(my_list)))

** लिस्टिंग क्रम में वर्णमाला पर संख्याओं को प्राथमिकता दी गई है। पायथन मूल्य संगठन यह भयानक है




def reverse(text):
    output = []
    for i in range(len(text)-1, -1, -1):
        output.append(text[i])
    return output



आप reversed() उपयोग कर सकते हैं

array=[0,10,20,40]

for e in reversed(array):
  print e



मुझे लगता है कि अजगर में एक सूची को रिवर्स करने का सबसे अच्छा तरीका है:

a = [1,2,3,4]
a = a[::-1]
print(a)
>>> [4,3,2,1]

काम पूरा हो गया, अब आपके पास एक उलटा सूची है।




>>> l = [1, 2, 3, 4, 5]
>>> print(reduce(lambda acc, x: [x] + acc, l, []))
[5, 4, 3, 2, 1]



__reverse__ का उपयोग करके किया जा सकता है, जो जनरेटर देता है।

>>> l = [1,2,3,4,5]
>>> for i in l.__reversed__():
...   print i
... 
5
4
3
2
1
>>>



def reverse(text):
    lst=[]
    for i in range(0,len(text)):
        lst.append(text[(len(text)-1)-i])
    return ''.join(lst)

print reverse('reversed')



स्लाइसिंग का उपयोग करना, उदाहरण के लिए सरणी = सरणी [:: - 1], एक साफ चाल है और बहुत पागल है लेकिन नए लोगों के लिए थोड़ा अस्पष्ट हो सकता है, रिवर्स () विधि का उपयोग करके दिन-प्रतिदिन कोडिंग में जाने का एक अच्छा तरीका है।

हालांकि यदि आपको एक साक्षात्कार प्रश्न के रूप में एक सूची को वापस करने की आवश्यकता है, तो आप संभवतः इन तरीकों से निर्मित विधियों का उपयोग करने में सक्षम नहीं होंगे, इसलिए निम्न उदाहरण ऐसा करने का एक और तरीका हो सकता है: -

def reverse_in_place(lst):      # Declare a function
    size = len(lst)             # Get the length of the sequence
    hiindex = size - 1
    its = size/2                # Number of iterations required
    for i in xrange(0, its):    # i is the low index pointer
        temp = lst[hiindex]     # Perform a classic swap
        lst[hiindex] = lst[i] 
        lst[i] = temp
        hiindex -= 1            # Decrement the high index pointer
    print "Done!"

# Now test it!!
array = [2, 5, 8, 9, 12, 19, 25, 27, 32, 60, 65, 1, 7, 24, 124, 654]

print array                    # Print the original sequence
reverse_in_place(array)        # Call the function passing the list 
print array                    # Print reversed list


**The result:-**
[2, 5, 8, 9, 12, 19, 25, 27, 32, 60, 65, 1, 7, 24, 124, 654]
Done!
[654, 124, 24, 7, 1, 65, 60, 32, 27, 25, 19, 12, 9, 8, 5, 2]

ध्यान दें कि यह स्ट्रिंग अनुक्रमों पर काम नहीं करेगा क्योंकि तार अपरिवर्तनीय हैं यानी आप तत्वों को बदलने के लिए उनमें नहीं लिख सकते हैं।




Links