Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonバイトストリングとは何ですか?


文字列は文字のシーケンスです。これらは抽象的な概念であり、ディスクに直接保存することはできません。バイト文字列はバイトのシーケンスであり、ディスクに保存できるものです。それらの間のマッピングはエンコーディングです-これらはかなりたくさんあります(そして無限に多くが可能です)-そして、異なるエンコーディングが同じバイトをマッピングする可能性があるため、変換を行うために特定の場合にどちらが適用されるかを知る必要があります別の文字列に。たとえば、同じバイト文字列は、2つの異なるエンコーディングで2つの異なる文字列を表すことができます。たとえば、

>>> b'\xcf\x84o\xcf\x81\xce\xbdo\xcf\x82'.decode('utf-16')
'蓏콯캁澽苏'
>>> b'\xcf\x84o\xcf\x81\xce\xbdo\xcf\x82'.decode('utf-8')
'τoρνoς'

使用するエンコーディングがわかれば、バイト文字列の.decode()メソッドを使用して、そこから適切な文字列を取得できます。文字列の.encode()メソッドは逆の方向に進み、文字列をバイト文字列としてエンコードします。


  1. Python文字列の最大長はどれくらいですか?

    64ビットのPythonインストールと64GBのメモリを使用すると、約63GBのPython2文字列が非常に実現可能になります。それをはるかに超えてメモリをアップグレードできる場合は、実行可能な最大文字列が比例して長くなるはずです。しかし、これにはランタイムへの影響が伴います。 もちろん、一般的な32ビットPythonインストールでは、アプリケーションで使用できるメモリの合計は2GBまたは3GB(OSと構成によって異なります)などに制限されているため、使用できる最長の文字列は非常に大量のRAMを使用する64ビットインストールの場合。

  2. Pythonの文字列とバイト文字列の違いは何ですか?

    文字列は文字のシーケンスです。これらは抽象的な概念であり、ディスクに直接保存することはできません。バイト文字列はバイトのシーケンスであり、ディスクに保存できるものです。それらの間のマッピングはエンコーディングです-これらはかなりたくさんあります(そして無限に多くが可能です)-そして、異なるエンコーディングが同じバイトをマッピングする可能性があるため、変換を行うために特定の場合にどちらが適用されるかを知る必要があります別の文字列に。たとえば、同じバイト文字列は、2つの異なるエンコーディングで2つの異なる文字列を表すことができます。 例 >>> b'\xcf\x84o\x