Technologieaustausch

Kapitel 6 String-Objekte und Slicing-Operationen

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Inhaltsverzeichnis

Kapitel 6 String-Objekte und Slicing-Operationen

6.1 String-Objekt

6.2 Häufig verwendete Methoden in Zeichen

6.3 Schneidvorgang

Kapitel 6 String-Objekte und Slicing-Operationen

6.1 String-Objekt

String: Ein String, der aus mehreren Zeichen besteht

Zeichen: Mit bloßem Auge sichtbare Symbole

Bytes: für das bloße Auge unsichtbar

So definiert Python Strings:

einfache Anführungszeichen, doppelte Anführungszeichen, dreifache Anführungszeichen str()

6.2 Häufig verwendete Methoden in Zeichen

 >>> dir(s)
 ['capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

Großschreibung ------- Machen Sie den ersten Buchstaben der Zeichenfolge in Großbuchstaben

 >>> s
 'this is a string'
 >>> s.capitalize()
 'This is a string'

center(width, fillchar='') ------ Zentrieren Sie die Zeichenfolge entsprechend der angegebenen Länge und richten Sie sie in der Mitte aus

rjust --------- rechtsbündig

ljust ------ linke Ausrichtung

 >>> help(s.center)
 Help on built-in function center:
 ​
 center(width, fillchar=' ', /) method of builtins.str instance
     Return a centered string of length width.
 ​
     Padding is done using the specified fill character (default is a space).
 ​
 >>> s.center(40)
 '            this is a string            '
 >>> s.center(40,"*")
 '************this is a string************'
 >>> s.rjust(40)
 '                        this is a string'
 >>> s.ljust(40)
 'this is a string                        '
 >>> s.ljust(40,"*")
 'this is a string************************'
 >>> s.rjust(40,"*")
 '************************this is a string'

count --------- zählt, wie oft ein Zeichen in einer Zeichenfolge vorkommt

 >>> s
 'this is a string'
 >>> s.count("s")
 3
 >>> s.count("is")
 2

endet mit ------- Bestimmen Sie, ob die Zeichenfolge mit XXX endet

startet mit ------- Bestimmen Sie, ob die Zeichenfolge mit XXX beginnt

 >>> s.endswith("g")
 True
 >>> s.endswith("ing")
 True
 >>> s.endswith("f")
 False
 >>> s.startswith("t")
 True
 >>> s.startswith("f")
 False

index ------ Die Position, an der das gesuchte Zeichen oder die gesuchte Zeichenfolge zum ersten Mal in der Zeichenfolge erscheint. Wenn sie nicht vorhanden ist, wird eine Ausnahme (Fehlerbericht) ausgelöst.

rindex ------- Suche von rechts nach links, die Position, an der das gesuchte Zeichen oder die Zeichenfolge zum ersten Mal in der Zeichenfolge erscheint (entspricht dem letzten Vorkommen des Zeichens oder der Zeichenfolge, die von links nach rechts in der Zeichenfolge gesucht wird). ), wenn es nicht existiert, eine Ausnahme auslösen (einen Fehler melden)

 >>> s
 'this is a string'
 >>> s.index("s")
 3
 >>> s.index("is")
 2
 >>> s.index("f")
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 ValueError: substring not found
 >>> s.index(" ")
 4
 >>> s.rindex("s")
 10
 >>> s.rindex("f")
 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 ValueError: substring not found

find ------- Die Position, an der das gesuchte Zeichen oder die gesuchte Zeichenfolge zum ersten Mal in der Zeichenfolge vorkommt. Wenn es nicht existiert, wird -1 zurückgegeben.

rfind----- Suchen Sie von rechts nach links nach der Position des ersten Vorkommens des Zeichens oder der Zeichenfolge in der Zeichenfolge (entspricht der Position des letzten Vorkommens des Zeichens oder der Zeichenfolge in der Zeichenfolge von links nach rechts). gibt -1 zurück, wenn es nicht existiert

 >>> s
 'this is a string'
 >>> s.find("s")
 3
 >>> s.find("f")
 -1
 >>> s.rfind("f")
 -1
 >>> s.rfind("s")
 10

encode ----- Methode zum Konvertieren von Strings in Bytes in Python3, decode()-Methode zum Konvertieren von Bytes in Strings (Methode in Bytes)

 >>> s
 'this is a string'
 >>> s.encode()
 b'this is a string'
 >>> d = s.encode()
 >>> d
 b'this is a string'
 >>> type(d)
 <class 'bytes'>
 >>> d
 b'this is a string'
 >>> d.decode()
 'this is a string'
 >>> ss = d.decode()
 >>> ss
 'this is a string'
 >>> type(ss)
 <class 'str'>

Format ------ Zeichenfolge formatieren, Zeichenfolgen verketten

isupper ------ Bestimmt, ob die Zeichenfolge ausschließlich aus Großbuchstaben besteht

islower ----- ------ Bestimmen Sie, ob die Zeichenfolge ausschließlich aus Kleinbuchstaben besteht

>>> s.isupper()
False
>>> s.islower()
False

istitle ----- Bestimmen Sie, ob es sich um einen Titel handelt

>>> s.istitle()
False
>>> ss = "This Is A Dog"
>>> ss.istitle()
True

isspace ----- Es wird nicht häufig verwendet, um zu bestimmen, ob es sich um ein Leerzeichen handelt.

>>> sss = "       "
>>> sss.isspace()
True
>>> ss
'This Is A Dog'
>>> ss.isspace()
False

isdigit ------ Bestimmen Sie, ob es sich um eine Zahl handelt

>>> sss = "123234344"
>>> sss.isdigit()
True
>>> ss
'This Is A Dog'
>>> ss.isdigit()
False
>>> sss = "1233443gggg"
>>> sss.isdigit()
False

isalnum ------ bestimmt, ob es sich um Buchstaben und Zahlen handelt (alphanumerisch)

>>> help(s.isalnum)
Help on built-in function isalnum:

isalnum() method of builtins.str instance
    Return True if the string is an alpha-numeric string, False otherwise.

    A string is alpha-numeric if all characters in the string are alpha-numeric and
    there is at least one character in the string.

>>> sss
'1233443gggg'
>>> sss.isalnum()
True
>>> ss
'This Is A Dog'
>>> ss.isalnum()
False

isalpha ------ ermittelt, ob es sich um einen Buchstaben handelt

Titel ----- String in Titelformat konvertieren

>>> s
'This is a string'
>>> s.istitle()
False
>>> s.title()
'This Is A String'
>>> sss = s.title()
>>> sss
'This Is A String'
>>> sss.istitle()
True

Upper ------- String in Großbuchstaben umwandeln

Lower ------- String in Kleinbuchstaben umwandeln

>>> s
'This is a string'
>>> s.lower()
'this is a string'
>>> s.upper()
'THIS IS A STRING'

split ----- Teilen Sie die Zeichenfolge gemäß dem angegebenen Symbol und der Rückgabewert ist eine Liste

>>> s
'This is a string'
>>> s.split(" ")
['This', 'is', 'a', 'string']
>>> l = s.split(" ")
>>> l
['This', 'is', 'a', 'string']
>>> type(l)
<class 'list'>
>>> l = s.split("s")
>>> l
['Thi', ' i', ' a ', 'tring']

join ------ verkettet ein iterierbares Objekt gemäß dem angegebenen Format zu einer Zeichenfolge

>>> ls = ["A","B","c","d"]
>>> type(ls)
<class 'list'>
>>> ss = " ".join(ls)
>>> ss
'A B c d'
>>> type(ss)
<class 'str'>
>>> ss = "*".join(ls)
>>> ss
'A*B*c*d'

Streifen ------- Leerzeichen auf beiden Seiten entfernen

rstrip------ löscht die Leerzeichen auf der rechten Seite

lstrip -------- linke Leerzeichen löschen

>>> ss = "                              hhhhhhh                                  "
>>> ss
'                              hhhhhhh                                  '
>>> ss.strip()
'hhhhhhh'
>>> ss.strip()
'hhhhhhh'
>>> ss
'                              hhhhhhh                                  '
>>> ss.rstrip()
'                              hhhhhhh'
>>> ss.lstrip()
'hhhhhhh                                  '

ersetzen ("ursprüngliches Zeichen", "neues Zeichen") ------ Ersetzen Sie das entsprechende Zeichen

>>> s
'This is a string'
>>> s.replace("s","t")
'Thit it a ttring'

6.3 Schneidvorgang

Slice: Wird zum Trennen iterierbarer Objekte (Container) verwendet.

Grammatik regeln:

object[start_index:end_index:step]

start_index ------- Startindex (Startposition)

end_index ------ Endindex (Endposition), enthält nicht den Wert bei end_index

Schritt ---- Schrittgröße, kann eine positive oder eine negative Zahl sein, positive Zahl (von links nach rechts) negative Zahl (von rechts nach links), der Standardwert ist 1

object[:]  ----- 切割的是一个完整的对象
object[start_index:]  ------ 从start_index开始切割到最后的位置,步长为1
object[:end_index] ------ 从最开始的位置切割到end_index处,但是不包含end_index
object[start_index:end_index] ------- 从start_index开始切割到end_index处,但是不包含end_index,步长为1
object[start_index:end_index:step] ------------ 从start_index开始切割到end_index处,但是不包含end_index,步长为step  

Der Abstand zwischen vorderem Schließen und hinterem Öffnen

ls = [0,1,2,3,4,5,6,7,8,9]

1. Schneiden Sie einen einzelnen Wert aus

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[0]
0
>>> ls[-4]
6

2. Schneiden Sie das komplette Objekt aus

>>> ls[:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[::]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[::-1]  #-1 表示从右往左切割 所以是倒序
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

3. start_index und end_index sind beide positive Zahlen

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[1:6]
[1, 2, 3, 4, 5]
>>> ls[1:6:-1]  # start_index=1 end_index = 6表示的是从1切割到6的位置,但是不包含6处的值,从左往右切割,step=-1 表示从右往左   
[]
>>> ls[6:1]
[]
>>> ls[6:1:-1]
[6, 5, 4, 3, 2]
>>> ls[:6]
[0, 1, 2, 3, 4, 5]
>>> ls[:6:-1]
[9, 8, 7]
>>> ls[6:]
[6, 7, 8, 9]
>>> ls[6::-1]
[6, 5, 4, 3, 2, 1, 0]
>>>

4. start_index und end_index sind beide negative Zahlen

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[-1:-6]
[]
>>> ls[-1:-6:-1]
[9, 8, 7, 6, 5]
>>> ls[-6:-1]
[4, 5, 6, 7, 8]
>>> ls[:-6]
[0, 1, 2, 3]
>>> ls[:-6:-1]
[9, 8, 7, 6, 5]
>>> ls[-6:]
[4, 5, 6, 7, 8, 9]
>>> ls[-6::-1]
[4, 3, 2, 1, 0]

5. Start_index und end_index werden mit positiv und negativ kombiniert

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[1:-6]
[1, 2, 3]
>>> ls[1:-6:-1]
[]
>>> ls[-1:6]
[]
>>> ls[-1:6:-1]
[9, 8, 7]

6. Kontinuierliches Schneiden

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[:8][2:5][-1:]
[4]
ls[:8] ----- [0,1,2,3,4,5,6,7]
ls[:8][2:5]   -----   [2,3,4]
ls[:8][2:5][-1:] ----- [4]

7. Die drei Parameter des Slicings können auch Ausdrücke sein

>>> ls
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ls[2+1:3*2:7%3]
[3, 4, 5]
>>> ls[3:6:1]
[3, 4, 5]
>>> ls[2:6:2]
[2, 4]

8. Beim Schneiden können auch andere Objekte geschnitten werden

>>> (1,2,3,4,5,6,7,8,9)[:3]
(1, 2, 3)
>>> "ABCDEFGHIJK"[::2]
'ACEGIK'
>>> for i in range(1,100)[2::3][-10:]:
...     print(i)
...
72
75
78
81
84
87
90
93
96
99

Interview Fragen:

1. Wird bei der Verwendung von Slices zum Schneiden von Daten ein Fehler gemeldet, wenn der Indexbereich überschritten wird?

Es wird kein Fehler gemeldet, wenn der Bereich überschritten wird, wird das vollständige Objekt zurückgegeben. Wenn es inkonsistent ist, wird [] zurückgegeben.

2. Wie kann ich die Ausgabe einer Liste in Python umkehren?

Schleife rückwärts

[::-1]

Liste.umkehren()