Untuk membalikkan rentetan dalam python, anda boleh menggunakan pengirik. Pengiraan adalah ciri yang kuat dalam Python yang membolehkan anda mengekstrak sebahagian daripada urutan, dan ia juga boleh digunakan untuk membalikkan urutan. Berikut adalah contoh bagaimana untuk membalikkan rentetan menggunakan mengiris:
<code class="python">original_string = "Hello, World!" reversed_string = original_string[::-1] print(reversed_string) # Output: !dlroW ,olleH</code>
Dalam penghirisan [::-1]
, nilai langkah -1
menunjukkan bahawa anda ingin melintasi rentetan dari akhir ke permulaan, dengan berkesan membalikkannya.
Terdapat beberapa kaedah untuk membalikkan rentetan dalam python, masing -masing dengan pendekatannya sendiri:
Menggunakan penghirisan : Seperti yang disebutkan sebelumnya, mengiris dengan langkah -1
boleh membalikkan rentetan.
<code class="python">original_string = "Python" reversed_string = original_string[::-1] print(reversed_string) # Output: nohtyP</code>
Menggunakan fungsi reversed()
dan join()
Kaedah : Anda boleh menukar rentetan ke senarai, membalikkan senarai, dan kemudian sertai ia kembali ke rentetan.
<code class="python">original_string = "Python" reversed_string = ''.join(reversed(original_string)) print(reversed_string) # Output: nohtyP</code>
Menggunakan gelung : Anda boleh membina rentetan terbalik secara manual menggunakan gelung.
<code class="python">original_string = "Python" reversed_string = "" for char in original_string: reversed_string = char reversed_string print(reversed_string) # Output: nohtyP</code>
Menggunakan rekursi : Anda boleh menggunakan fungsi rekursif untuk membalikkan rentetan.
<code class="python">def reverse_string(s): if len(s) </code>
Membalikkan rentetan dalam Python tidak menjejaskan data asalnya. Strings dalam python tidak berubah, yang bermaksud bahawa sekali rentetan dibuat, ia tidak boleh diubah. Mana -mana operasi yang nampaknya mengubahsuai rentetan sebenarnya membuat rentetan baru.
Contohnya, apabila anda membalikkan rentetan menggunakan penghirisan:
<code class="python">original_string = "Hello" reversed_string = original_string[::-1] print(original_string) # Output: Hello print(reversed_string) # Output: olleH</code>
Seperti yang anda lihat, original_string
kekal tidak berubah, dan reversed_string
adalah rentetan baru yang mengandungi versi terbalik original_string
.
Ya, terdapat perbezaan prestasi antara pelbagai teknik pembalikan rentetan dalam python, bergantung kepada kaedah yang digunakan dan panjang rentetan.
[::-1]
): Ini biasanya kaedah terpantas kerana penghirisan dilaksanakan di C dan sangat dioptimumkan. Ia mempunyai kerumitan masa O (n), di mana n ialah panjang rentetan.reversed()
dan join()
: Kaedah ini juga mempunyai kerumitan masa O (n), tetapi ia melibatkan menukarkan rentetan ke iterator dan kemudian kembali ke rentetan, yang boleh sedikit lebih perlahan daripada mengiris. Berikut adalah penanda aras mudah untuk menggambarkan perbezaan prestasi (menggunakan modul timeit
):
<code class="python">import timeit original_string = "Python" * 1000 # A long string for better comparison # Slicing slicing_time = timeit.timeit(lambda: original_string[::-1], number=10000) print(f"Slicing: {slicing_time}") # reversed() and join() reversed_join_time = timeit.timeit(lambda: ''.join(reversed(original_string)), number=10000) print(f"reversed() and join(): {reversed_join_time}") # Loop def reverse_with_loop(s): reversed_string = "" for char in s: reversed_string = char reversed_string return reversed_string loop_time = timeit.timeit(lambda: reverse_with_loop(original_string), number=10000) print(f"Loop: {loop_time}") # Recursion def reverse_with_recursion(s): if len(s) </code>
Output akan menunjukkan bahawa penghirisan biasanya merupakan kaedah terpantas, diikuti dengan reversed()
dan join()
, maka kaedah gelung, dan akhirnya kaedah rekursif menjadi yang paling lambat. Walau bagaimanapun, untuk rentetan pendek, perbezaan mungkin boleh diabaikan.
Atas ialah kandungan terperinci Bagaimana anda membalikkan rentetan dalam python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!