Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Python-String-, Bytes- und Bytearray-Typen

Detaillierte Erläuterung der Python-String-, Bytes- und Bytearray-Typen

小云云
小云云Original
2017-12-18 09:17:476614Durchsuche

Python3 unterscheidet zwischen Text- und Binärdaten. Der Text hat die Unicode-Kodierung vom Typ str und wird zur Anzeige verwendet. Der Binärtyp ist der Bytetyp und wird zur Speicherung und Übertragung verwendet. Bytes ist eine Folge von Bytes und str ist eine Folge von Unicode. In diesem Artikel werden hauptsächlich der Python-String-Typ, der Byte-Typ und der Bytearray-Typ vorgestellt. Freunde, die ihn benötigen, können darauf zurückgreifen.

1. str-Typ:

 >>> s = u'你好'
 >>> s
 '你好'
 >>> type(s)
 <class &#39;str&#39;>

Byte-Typ:

 >>> b = b'abc'
 >>> b
 b'abc'
 >>> type(b)
 <class &#39;bytes&#39;>

2. Die Konvertierungsbeziehung zwischen str und Bytes: str-->encode()-->bytes-->decode()-->str

Konvertierungsmethode Eins : encode(), decode()

 >>> a = u'你好'
 >>> b = a.encode('utf-8')
 >>> b
 b'\xe4\xbd\xa0\xe5\xa5\xbd'
 >>> type(b)
 <class &#39;bytes&#39;>
 >>> new_a = b.decode('utf-8')
 >>> new_a
 '你好'
 >>> type(new_a)
 <class &#39;str&#39;>

Konvertierungsmethode zwei: bytes(), str()

 >>> a = u'你好'
 >>> b= bytes(a, encoding='utf-8')
 >>> b 
 b'\xe4\xbd\xa0\xe5\xa5\xbd'
 >>> type(b)
 <class &#39;bytes&#39;>
 >>> new_a = str(b, encoding='utf-8')
 >>> new_a
 '你好'
 >>> type(new_a)
 <class &#39;str&#39;>

3. Bytearray-Typ

Die Bytearray-Klasse ist eine Variablensequenz mit dem Bereich 0 <

Der optionale Quellparameter kann verwendet werden, um das Array auf verschiedene Arten zu initialisieren:

• Wenn es sich um eine Zeichenfolge handelt, müssen Sie auch die Kodierungsparameter (und optional einen Fehler) angeben. bytearray() verwendet dann str.encode(), um die Zeichenfolge in Bytes umzuwandeln.
• Wenn es sich um eine Ganzzahl handelt, hat das Array diese Größe und wird mit Nullbytes initialisiert.
• Wenn es sich um ein Objekt handelt, das der Pufferschnittstelle entspricht, wird das Byte-Array mithilfe des schreibgeschützten Puffers des Objekts initialisiert.
• Wenn es iterierbar ist, muss es eine Iteration von ganzen Zahlen im Bereich 0 < = Array von 0 sein.

Wenn der Quellparameter eine Zeichenfolge ist:

 >>> b = bytearray(u'你好', encoding='utf-8')
 >>> b
 bytearray(b'\xe4\xbd\xa0\xe5\xa5\xbd')
 >>> type(b)
 <class &#39;bytearray&#39;></p>
<p></p>Wenn der Quellparameter eine Ganzzahl ist: <p></p> <p></p>
<pre class="brush:php;toolbar:false">
 >>> b = bytearray(5)
 >>> b
 bytearray(b'\x00\x00\x00\x00\x00')
 >>> type(b)
 <class &#39;bytearray&#39;>

Wenn der Quellparameter ein iterierbares Objekt ist, müssen die Elemente dieses iterierbaren Objekts 0 <= x < entsprechen:

 >>> b = bytearray([1, 2, 3, 4, 255])
 >>> b
 bytearray(b'\x01\x02\x03\x04\xff')
 >>> type(b)
 <class &#39;bytearray&#39;

4. Der Unterschied zwischen Bytes und Bytearray

Bytes ist unveränderlich, genau wie str. bytearray ist eine Variable, genau wie list.

 >>> b = bytearray()
 >>> b
 bytearray(b'')
 >>> b.append(10)
 >>> b
 bytearray(b'\n')
 >>> b.append(100)
 >>> b
 bytearray(b'\nd')
 >>> b.remove(100)
 >>> b
 bytearray(b'\n')
 >>> b.insert(0, 150)
 >>> b
 bytearray(b'\x96\n')
 >>> b.extend([1, 3, 5])
 >>> b
 bytearray(b'\x96\n\x01\x03\x05')
 >>> b.pop(2)
 1
 >>> b
 bytearray(b'\x96\n\x03\x05')
 >>> b.reverse()
 >>> b
 bytearray(b'\x05\x03\n\x96')
 >>> b.clear()
 >>> b
 bytearray(b'')<p></p>5. Bytes und Bytearray-Konvertierung <p></p>
<p></p>
<pre class="brush:php;toolbar:false">
 >>> b = b'abcdef'
 >>> bay = bytearray(b)
 >>> bay
 bytearray(b'abcdef')
 >>> b = bytes(bay)
 >>> b
 b'abcdef'

6. bytearray- und str-Konvertierung

 >>> a = 'abcdef'
 >>> b = bytearray(a, encoding='utf-8')
 >>> b
 bytearray(b'abcdef')
 >>> a = b.decode(encoding='utf-8')
 >>> a
 'abcdef'

Verwandte Empfehlungen:

Eine kurze Diskussion über verschiedene Sortiermethoden von numpy arrays_python

Verwenden Sie die Python-Sprache, um die maximale kontinuierliche Teilsequenz zu beschreiben und

Beherrschen Sie Python vollständig

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Python-String-, Bytes- und Bytearray-Typen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn