Rumah >pembangunan bahagian belakang >Tutorial Python >Kaedah rentetan python, dengan contoh
Penjelasan terperinci kaedah rentetan python: pemprosesan data teks yang cekap
Python menyediakan kaedah rentetan yang kaya untuk mengendalikan objek rentetan seperti memformat, mencari, dan mengubah suai tanpa mengubah rentetan asal kerana rentetan tidak berubah. Artikel ini akan memperkenalkan beberapa kaedah rentetan python yang biasa digunakan dan menerangkannya dalam kombinasi dengan contoh.
Ciri -ciri rentetan
berdiri adalah sebahagian daripada bahasa pengaturcaraan dan salah satu jenis data yang paling biasa digunakan dalam Python. Mereka adalah urutan aksara Unicode yang tidak berubah yang boleh disertakan dalam tanda petikan tunggal, berganda atau tiga kali ganda. Ketidakhadiran bermakna bahawa sekali rentetan dibuat, ia tidak boleh diubahsuai secara langsung;Contoh rentetan dalam python:
<code class="language-python">greeting = "Hello, World!"</code>
Nota: Tidak seperti Java atau bahasa pengaturcaraan lain, Python tidak menyokong jenis data watak. Jadi satu watak yang tertutup dalam petikan, seperti 'C', masih rentetan.
Gambaran keseluruhan kaedah rentetan
Sejak rentetan dianggap sebagai urutan dalam python, mereka melaksanakan semua operasi urutan seperti bergabung, kepingan, dan lain -lain:
<code class="language-python">>>> word = 'golden' >>> len(word) 6 >>> word + 'age' 'goldenage' >>> 'la' * 3 'lalala' >>></code>Di samping operasi urutan, terdapat banyak kaedah tambahan lain yang berkaitan dengan objek rentetan. Kaedah ini boleh digunakan untuk memformat rentetan, mencari substrings dalam rentetan lain, trim ruang, melakukan pemeriksaan tertentu pada rentetan yang diberikan, dan sebagainya.
Harus diperhatikan bahawa kaedah rentetan ini tidak mengubah suai rentetan asal; Kebanyakan kaedah rentetan hanya mengembalikan salinan rentetan yang diubahsuai atau nilai boolean.
Berikut adalah pengenalan terperinci kepada beberapa kaedah rentetan python, disertai dengan contoh.
Kaedah
untuk mengembalikan salinan rentetan yang diubahsuai
str.capitalize()
: Menukar watak pertama rentetan ke huruf besar dan selebihnya ke huruf kecil.
<code class="language-python">>>> "i Enjoy traveling. Do you?".capitalize() 'I enjoy traveling. do you?' >>></code>
str.center(width[, fillchar])
: Mengembalikan rentetan berpusat, diisi dengan dan fillchar
yang diberikan. Jika width
kurang daripada atau sama dengan panjang rentetan, rentetan asal dikembalikan. width
<code class="language-python">>>> sentence = 'i Enjoy traveling. Do you?' >>> len(sentence) 26 >>> sentence.center(31) ' i Enjoy traveling. Do you? ' >>> sentence.center(30) ' i Enjoy traveling. Do you? '</code>
str.encode(encoding='utf-8', errors='strict')
: Mengembalikan rentetan yang dikodkan sebagai bait.
akan dibangkitkan. Parameter Kata Kunci UnicodeEncodeError
menentukan cara mengendalikan kesilapan, seperti errors
melemparkan pengecualian, strict
mengabaikan sebarang kesilapan yang dihadapi, dan lain -lain. Terdapat beberapa pilihan pengekodan lain yang tersedia. ignore
<code class="language-python">greeting = "Hello, World!"</code>
* `str.format ( args, kwargs)` : Mengembalikan satu salinan rentetan di mana setiap medan pengganti digantikan dengan nilai rentetan parameter yang sepadan.
Contoh:
<code class="language-python">>>> word = 'golden' >>> len(word) 6 >>> word + 'age' 'goldenage' >>> 'la' * 3 'lalala' >>></code>
str.lower()
: Tukar semua aksara huruf besar dalam rentetan ke huruf kecil.
Contoh:
<code class="language-python">>>> "i Enjoy traveling. Do you?".capitalize() 'I enjoy traveling. do you?' >>></code>
str.removeprefix(prefix, /)
: Menghapuskan awalan yang ditentukan pada permulaan rentetan, dan mengembalikan rentetan asal jika awalan tidak dapat dijumpai.
Contoh:
<code class="language-python">>>> sentence = 'i Enjoy traveling. Do you?' >>> len(sentence) 26 >>> sentence.center(31) ' i Enjoy traveling. Do you? ' >>> sentence.center(30) ' i Enjoy traveling. Do you? '</code>
str.removesuffix(suffix, /)
: Menghapuskan akhiran yang ditentukan pada akhir rentetan, dan mengembalikan rentetan asal jika akhiran tidak dapat dijumpai.
Contoh:
<code class="language-python">>>> sentence = "i Enjoy traveling. Do you, 山本さん?" >>> sentence.encode() b'i Enjoy traveling. Do you, \xe5\xb1\xb1\xe6\x9c\xac\xe3\x81\x95\xe3\x82\x93?' >>> sentence.encode(encoding='ascii') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode characters in position 27-30: ordinal not in range(128) >>> sentence.encode(encoding='ascii', errors='replace') b'i Enjoy traveling. Do you, ?????'</module></stdin></code>
str.replace(old, new[, count])
: Gantikan semua substrings yang muncul dalam rentetan dengan old
. Jika parameter new
disediakan, hanya substrings kejadian count
yang diganti. count
<code class="language-python">>>> "I bought {0} apples and the cost {1:.2f} Ghana cedis.".format(2, 18.70) 'I bought 2 apples and the cost 18.70 Ghana cedis.' >>> "My name is {first_name}, and I'm a {profession}.".format(first_name='Ben', profession='doctor') "My name is Ben, and I'm a doctor." >>></code>
str.strip([chars])
: Mengembalikan rentetan baru di mana watak -watak yang ditentukan pada permulaan dan akhir rentetan asal telah dikeluarkan. Jika parameter tidak disediakan, ruang dikeluarkan secara lalai. chars
<code class="language-python">>>> 'i Enjoy traveling. Do you?'.lower() 'i enjoy traveling. do you?' >>></code>
str.title()
: Mempunyai huruf pertama setiap perkataan dalam rentetan dan huruf kecil selebihnya huruf.
<code class="language-python">>>> 'i Enjoy traveling. Do you?'.removeprefix('i') ' Enjoy traveling. Do you?' >>></code>
str.upper()
: Tukar semua aksara dalam rentetan ke huruf besar.
<code class="language-python">>>> 'i Enjoy traveling. Do you?'.removesuffix('Do you?') 'i Enjoy traveling. ' >>></code>
Kaedah untuk menyatukan dan berpecah rentetan
str.join(iterable)
: Concatenate rentetan dalam objek yang boleh dimatikan ke dalam rentetan baru. Jika objek yang boleh dimatikan mengandungi nilai bukan rentetan, pengecualian dibuang. TypeError
<code class="language-python">>>> 'i Enjoy traveling. Do you?'.replace('Enjoy','dislike') 'i dislike traveling. Do you?' >>> 'Things fall apart'.replace('a','e',1) 'Things fell apart' >>></code>
str.split(sep=None, maxsplit=-1)
: Pecahkan rentetan ke dalam senarai mengikut pemisah yang ditentukan.
<code class="language-python">>>> word1 = ' whitespace '.strip() >>> word1 'whitespace' >>> word2 = 'exercise'.strip('e') >>> word2 'xercis' >>> word3 = 'chimpanze'.strip('acepnz') >>> word3 'him' >>></code>
bagaimana untuk menanyakan rentetan
str.count(sub[, start[, end]])
: Mengembalikan bilangan kali substring muncul dalam rentetan. sub
<code class="language-python">>>> 'i Enjoy traveling. Do you?'.title() 'I Enjoy Traveling. Do You?' >>></code>
str.find(sub[, start[, end]])
: Mengembalikan indeks lokasi di mana substring muncul untuk kali pertama dalam rentetan. Jika substring tidak dijumpai, kembali -1. sub
<code class="language-python">>>> 'i Enjoy traveling. Do you?'.upper() 'I ENJOY TRAVELING. DO YOU?' >>></code>
str.index(sub[, start[, end]])
: Mengembalikan indeks lokasi di mana substring muncul untuk kali pertama dalam rentetan. Jika substring tidak dijumpai, pengecualian sub
ValueError
Contoh:
<code class="language-python">>>> words = ["Accra", "is", "a", "beautiful", "city"] >>> ' '.join(words) 'Accra is a beautiful city' >>> names = ['Abe', 'Fred', 'Bryan'] >>> '-'.join(names) 'Abe-Fred-Bryan' >>></code>
: pulangan
: pulangan Jika semua aksara dalam rentetan adalah aksara ASCII atau rentetan kosong;
Jika rentetan mengandungi semua aksara perpuluhan dan mempunyai sekurang -kurangnya satu aksara;
Contoh: Contoh:
: pulangan
: Decode bait ke dalam rentetan.
Secara lalai, pengekodan adalah 'UTF-8', dan jika ralat berlaku, pengecualian adalah parameter kata kunci ralat yang menentukan bagaimana pengecualian dikendalikan.
Penguasaan dalam kaedah rentetan python adalah penting untuk pemprosesan data teks yang cekap. Python menyediakan banyak alat untuk melakukan manipulasi rentetan dengan mudah dan meningkatkan kecekapan pengaturcaraan.
cuba meramalkan output kod berikut:
anda boleh menjalankan kod dalam persekitaran interaktif python untuk mengesahkan jawapan anda. (bahagian Soalan Lazim ditinggalkan kerana terlalu lama dan tidak sepadan dengan matlamat asal pseudo. Kandungan FAQS boleh ditambah di tempat lain seperti yang diperlukan.)
str.endswith(suffix[, start[, end]])
: pulangan suffix
Jika rentetan berakhir dengan True
yang ditentukan; False
<code class="language-python">greeting = "Hello, World!"</code>
str.isalnum()
: pulangan Jika rentetan mengandungi aksara alfanumerik dan mempunyai sekurang -kurangnya satu aksara; True
False
Contoh: <code class="language-python">>>> word = 'golden'
>>> len(word)
6
>>> word + 'age'
'goldenage'
>>> 'la' * 3
'lalala'
>>></code>
str.isalpha()
Jika semua aksara dalam rentetan adalah huruf dan mempunyai sekurang -kurangnya satu aksara;
True
Contoh: False
<code class="language-python">>>> "i Enjoy traveling. Do you?".capitalize()
'I enjoy traveling. do you?'
>>></code>
str.isascii()
Contoh: True
False
<code class="language-python">>>> sentence = 'i Enjoy traveling. Do you?'
>>> len(sentence)
26
>>> sentence.center(31)
' i Enjoy traveling. Do you? '
>>> sentence.center(30)
' i Enjoy traveling. Do you? '</code>
str.isdecimal()
Contoh:
True
False
<code class="language-python">>>> sentence = "i Enjoy traveling. Do you, 山本さん?"
>>> sentence.encode()
b'i Enjoy traveling. Do you, \xe5\xb1\xb1\xe6\x9c\xac\xe3\x81\x95\xe3\x82\x93?'
>>> sentence.encode(encoding='ascii')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 27-30: ordinal not in range(128)
>>> sentence.encode(encoding='ascii', errors='replace')
b'i Enjoy traveling. Do you, ?????'</module></stdin></code>
str.isnumeric()
True
False
<code class="language-python">>>> "I bought {0} apples and the cost {1:.2f} Ghana cedis.".format(2, 18.70)
'I bought 2 apples and the cost 18.70 Ghana cedis.'
>>> "My name is {first_name}, and I'm a {profession}.".format(first_name='Ben', profession='doctor')
"My name is Ben, and I'm a doctor."
>>></code>
: pulangan str.islower()
True
False
<code class="language-python">>>> 'i Enjoy traveling. Do you?'.lower()
'i enjoy traveling. do you?'
>>></code>
Jika semua aksara dalam rentetan dipermodalkan dan mempunyai sekurang -kurangnya satu aksara; str.isupper()
True
False
<code class="language-python">>>> 'i Enjoy traveling. Do you?'.removeprefix('i')
' Enjoy traveling. Do you?'
>>></code>
yang ditentukan; str.startswith(prefix[, start[, end]])
prefix
True
kaedah byte (bytes.decode ()) False
<code class="language-python">>>> 'i Enjoy traveling. Do you?'.removesuffix('Do you?')
'i Enjoy traveling. '
>>></code>
,
bytes.decode(encoding='utf-8', errors='strict')
Contoh:
UnicodeDecodeError
strict
ignore
Ringkasan replace
<code class="language-python">>>> 'i Enjoy traveling. Do you?'.replace('Enjoy','dislike')
'i dislike traveling. Do you?'
>>> 'Things fall apart'.replace('a','e',1)
'Things fell apart'
>>></code>
Atas ialah kandungan terperinci Kaedah rentetan python, dengan contoh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!