-
Pythonで文字列から数字を抽出する方法は?
正の整数のみが必要な場合は、次のように分割して数値を検索できます。 >>> str = "h3110 23 cat 444.4 rabbit 11 2 dog" >>> [int(s) for s in str.split() if s.isdigit()] [23, 11, 2] 他のすべての場合、正規表現を使用するのが最良の選択です。また、値を抽出するときは、文字列からintに変換するのが最適です。例: >>> import re >>> [float(s) for s in re.findall
-
Pythonで文字列から特定の文字を削除するにはどうすればよいですか?
文字列クラスには、文字列内のサブ文字列を置き換えるために使用できるメソッドreplaceがあります。このメソッドを使用して、削除する文字を空の文字列に置き換えることができます。例: >>> "Hello people".replace("e", "") "Hllo popl" 1行の文字列から複数の文字を削除する場合は、正規表現を使用することをお勧めします。複数の文字は「|」で区切ることができますそして、re.sub(chars_to_replace、string_to_replace_with
-
Pythonで16進文字列をintに変換する方法は?
16進文字列には、通常、「0x」プレフィックスが付いています。このプレフィックスと有効な文字列がある場合は、int(string、0)を使用して整数を取得できます。 0は、プレフィックスからベースを自動的に解釈するように関数に指示するために提供されます。例: >>> int("0xfe43", 0) 65091 「0x」プレフィックスがない場合は、0ではなく16を渡して、数値の基数を指定できます。例: >>> int("fe43", 16) 65091
-
Pythonで変数名を文字列として取得するにはどうすればよいですか?
変数は実際にはオブジェクトへの名前マッピングであるため、これは実際にはPythonで行うことではありません。 Pythonで正規名を持つオブジェクトは、モジュール、関数、クラスのみです。もちろん、関数またはクラスが定義された後、またはモジュールがインポートされた後、この正規名が任意の名前空間で意味を持つという保証はありません。これらの名前は、オブジェクトの作成後に変更することもできるため、必ずしも特に信頼できるとは限りません。 変数の名前を文字列として取得する方法はまだあります。ただし、変数名を抽出するには、変数名の文字列を知っている必要があります。また、これは変数名の逆検索です。したがって
-
Pythonで大文字と数字のランダムな文字列を生成するにはどうすればよいですか?
random.choice(list_of_choices)を使用して、ランダムな文字を取得できます。次に、これをループしてリストを取得し、最後にこのリストに参加して文字列を取得します。ここでの選択肢のリストは大文字と数字です。例: import string import random def get_random_string(length): random_list = [] for i in xrange(length): random_list.append(random.
-
Pythonで不変の文字列のIDを変更するにはどうすればよいですか?
Pythonの文字列は不変です。つまり、文字列が作成されると、変更することはできません。文字列を作成するとき、同じ文字列を作成して別の変数に割り当てると、両方が同じ文字列/メモリを指します。たとえば、 >>> a = 'hi' >>> b = 'hi' >>> id(a) 43706848L >>> id(b) 43706848L この文字列オブジェクトの再利用は、Pythonではインターンと呼ばれます。同じ文字列は同じIDを持ちます。ただし、Pythonは文字列をインターンすることが保証
-
Pythonで印刷しているときに円記号が2回表示されるのはなぜですか?
バックスラッシュはエスケープ文字です。引用符、二重引用符、改行などの文字をエスケープするために使用されます。バックスラッシュを含む文字列を印刷すると、バックスラッシュもエスケープする必要があるため、2回表示されます。これは、このバックスラッシュがエスケープ文字としてではなく、バックスラッシュとしてのみ使用されることをインタプリタに伝えていることを意味します。たとえば、 print 'hello \\ John\'s friends' 出力 "hello \ John's friends"
-
Pythonで関数名を文字列として取得するにはどうすればよいですか?
すべての関数には、__name__というプロパティが付加されています。このプロパティにアクセスして、関数の名前を取得できます。例: def some_func(): return 0 print some_func.__name__ これにより、出力が得られます: some_func
-
PythonでPythonコードを含む文字列を実行するにはどうすればよいですか?
Pythonステートメントを実行する場合は、exec(string)を使用できます。たとえば、 >>> my_code = 'print "Hello World!"' >>> exec(my_code) Hello World! ただし、式の値を評価するだけの場合は、eval()を使用できます。たとえば、 >>> my_expression = "5 + 3" >>> eval(my_expression) 8 注:evalとexecは非常に強力な関数であるため
-
Pythonで長い複数行の文字列を作成するにはどうすればよいですか?
複数行の文字列を作成するには、一重引用符と二重引用符の1つのペアを使用する代わりに、3つのペアを使用します。たとえば、 multiline_str = """ My multi-line string """ print multiline_str これにより、出力が得られます: My multi-line string この表記を使用して文字列を補間することはできないことに注意してください。この表記は、Pythonでdocstringを定義するためにも使用されます。
-
Pythonの別の文字列に複数の文字列が存在するかどうかを確認するにはどうすればよいですか?
配列内の文字列のいずれかが別の文字列に存在するかどうかを確認するには、any関数を使用できます。 例 arr = ['a', 'e', 'i', 'o', 'u'] str = "hello people" if any(c in str for c in arr): print "Found a match" 出力 これにより、出力が得られます: Found a match 例 やり過ぎですが、正規表現を使用して配列を照合することもできます
-
Python 3で文字列をバイトにどのように変換しますか?
Python 3で文字列をバイトに変換するには、文字列クラスのencode()関数を使用できます。たとえば、 >>> s = u"HellΘ WΘrld" >>> s.encode('utf-8') 'Hell\xce\x98 W\xce\x98rld'
-
Pythonで文字列が空かどうかを確認する最も洗練された方法は何ですか?
空の文字列は「偽」です。つまり、ブールコンテキストでは偽と見なされるため、文字列ではなく単に使用できます。 例 string = "" if not string: print "Empty String!"を出力します 出力 これにより、出力が得られます: Empty String! 例 文字列に空白を含めることができ、それでもfalseと評価したい場合は、文字列を削除してもう一度確認できます。例: string = " " if not string.strip():
-
Pythonで文字列のエスケープシーケンスを処理する方法は?
Pythonでバックスラッシュでエスケープされた文字列をエスケープ解除するには、2つの方法があります。 1つは、literal_evalを使用して文字列を評価することです。この方法では、文字列を別の引用符で囲む必要があることに注意してください。例: >>> import ast >>> a = '"Hello,\\nworld"' >>> print ast.literal_eval(a) Hello, world もう1つの方法は、文字列クラスのdecode(string_escape)メソッドを使用
-
範囲外の部分文字列スライスインデックスがPythonで機能するのはなぜですか?
シーケンスの境界の外側でスライスしても(少なくともビルトインの場合)、エラーは発生しません。インデックス付けは単一のアイテムを返しますが、スライスはアイテムのサブシーケンスを返します。したがって、存在しない値にインデックスを付けようとすると、何も返されません。ただし、シーケンスを境界外にスライスした場合でも、空のシーケンスを返すことができます。例: >>> s = [1, 2, 3] >>> s[5:8] [] ただし、範囲外のインデックスを使用すると、エラーが発生します: >>> s = [1, 2, 3] >>> s
-
Pythonで浮動小数点数を固定幅にフォーマットするにはどうすればよいですか?
Pythonでは、文字列の書式設定を使用して、浮動小数点数を固定幅に書式設定できます。たとえば、小数点を12文字の幅と小数点の右側の4桁に揃える場合は、次を使用できます。 >>> x = 12.35874 >>> print "{:12.4f}".format(x) 12.3587 文字列の補間とフォーマットを使用して、この結果を達成することもできます。例: >>> x = 12.35874 >>> print "% 12.4f" % x &
-
Pythonで文字列のリストを並べ替える方法は?
リストを適切に並べ替える、つまりリスト自体を並べ替え、そのリスト自体の順序を変更するには、文字列のリストでsort()を使用できます。たとえば、 >>> a = ["Hello", "My", "Followers"] >>> a.sort() >>> print a ['Followers', 'Hello', 'My'] 元のリストをそのまま維持し、代わりにソートされた要素の新しいリストが必要な場合は、sorted(list)を
-
Pythonで文字列を数字と連結するにはどうすればよいですか?
文字列を数値と連結するには、str(number)を使用して数値を文字列にキャストする必要があります。たとえば、 >>> a = "string" >>> b = 1 >>> print a + str(b) string1 Python 2では、backtick( ``)を使用して数値を囲み、数値と文字列で同じ結果を得ることができます。 Python3からバッククォートが削除されていることに注意してください。たとえば、 >>> a = "string" >>>
-
Pythonで文字列から印刷できない文字を削除するにはどうすればよいですか?
ASCII文字しかなく、印刷できない文字を削除したい場合、最も簡単な方法は、string.printableを使用してそれらの文字を除外することです。たとえば、 >>> import string >>> filter(lambda x: x in string.printable, '\x01string') string 0x01は印刷可能な文字ではないため、印刷されませんでした。 Unicodeもサポートする必要がある場合は、Unicodeデータモジュールと正規表現を使用してこれらの文字を削除する必要があります。 例 import s
-
Pythonでバックスラッシュでエスケープされた文字列をエスケープ解除するにはどうすればよいですか?
Pythonでバックスラッシュでエスケープされた文字列をエスケープ解除するには、2つの方法があります。 1つは、literal_evalを使用して文字列を評価することです。この方法では、文字列を別の引用符で囲む必要があることに注意してください。例: >>> import ast >>> a = '"Hello,\\nworld"' >>> print ast.literal_eval(a) Hello, world もう1つの方法は、文字列クラスのdecode(string_escape)メソッドを使用