タグ付けされた質問 「python」

Pythonは、マルチパラダイム、動的型付け、多目的プログラミング言語です。これは、学習、理解、使用が迅速で、クリーンで統一された構文を適用できるように設計されています。Python 2は2020年1月1日をもって正式にサポートされなくなりました。それでも、バージョン固有のPythonの質問については、[python-2.7]または[python-3.x]タグを追加します。Pythonのバリアントまたはライブラリ(Jython、PyPy、Pandas、Numpyなど)を使用する場合は、タグに含めてください。

4
バックスラッシュでエスケープされた文字列をエスケープ解除する方法は?
別の文字列をバックスラッシュでエスケープしたバージョンの文字列があるとします。Pythonで文字列をエスケープ解除する簡単な方法はありますか?たとえば、次のことができます。 >>> escaped_str = '"Hello,\\nworld!"' >>> raw_str = eval(escaped_str) >>> print raw_str Hello, world! >>> ただし、これには、セキュリティ上のリスクがある(おそらく信頼できない)文字列をeval()に渡す必要があります。文字列を受け取り、セキュリティに影響を与えずに文字列を生成する関数が標準libにありますか?
100 python  string  escaping 

3
Python 3.5.1にはurllib2をインストールする必要があります
MacでPython 3.5.1を実行しています。urllib2モジュールを使いたい。インストールしようとしましたが、Python 3 urllib.requestとurllib.errorPython 3に分割されていると言われました。 私のコマンド(フレームワークのbinディレクトリから実行しているのは、それが私のパスにないためです): sudo ./pip3 install urllib.request これを返します: Could not find a version that satisfies the requirement urllib.request (from versions: ) No matching distribution found for urllib.request 以前にurllib2一気にインストールしようとしたときに同じエラーが発生しました。

5
Pythonの「スレッドローカルストレージ」とは何ですか。なぜ必要なのですか。
特にPythonでは、変数はどのようにスレッド間で共有されますか? threading.Thread以前に使用したことはありますが、変数が共有される方法の例を実際に理解したり見たりしたことはありません。それらはメインスレッドと子供の間で共有されますか、それとも子供の間だけですか?この共有を避けるために、スレッドローカルストレージをいつ使用する必要がありますか? ロックを使用してスレッド間で共有データへのアクセスを同期することに関する多くの警告を見てきましたが、問題の本当に良い例はまだ見ていません。 前もって感謝します!

2
パンダ:既存の列から計算された値を使用して、データフレームに2つの新しい列を作成します
私はパンダライブラリを使用しておりdf、n列(n> 0)のデータフレームに2つの新しい列を追加したいと思います。 これらの新しい列は、データフレームの列の1つに関数を適用した結果です。 適用する関数は次のようになります。 def calculate(x): ...operate... return z, y 値のみを返す関数の新しい列を作成する1つの方法は次のとおりです。 df['new_col']) = df['column_A'].map(a_function) だから、私が欲しいもの、そして失敗したことを試みたもの(*)は、次のようなものです: (df['new_col_zetas'], df['new_col_ys']) = df['column_A'].map(calculate) これを達成するための最良の方法は何でしょうか?手がかりなしでドキュメントをスキャンしました。 ** df['column_A'].map(calculate)パンダシリーズを返します。各アイテムはタプルz、yで構成されています。これを2つのデータフレーム列に割り当てようとすると、ValueErrorが発生します。*
100 python  pandas 


5
__cmp__の代わりに__lt__
Python 2.xには、比較演算子、__cmp__またはなどの「豊富な比較演算子」をオーバーロードする方法が2つあります__lt__。 豊富な比較オーバーロードが好ましいと言われていますが、なぜそうなのでしょうか。 豊富な比較演算子はそれぞれを実装する方が簡単ですが、それらのいくつかをほぼ同じロジックで実装する必要があります。ただし、組み込みcmpおよびタプルの順序付けを使用できる場合は、__cmp__非常に単純になり、すべての比較が実行されます。 class A(object): def __init__(self, name, age, other): self.name = name self.age = age self.other = other def __cmp__(self, other): assert isinstance(other, A) # assumption for this example return cmp((self.name, self.age, self.other), (other.name, other.age, other.other)) この単純さは、豊富な比較の6(!)すべてをオーバーロードするよりもはるかによく私のニーズを満たしているようです。(ただし、「スワップされた引数」/反映された動作に依存している場合は、「わずか」4に下げることができますが、私の考えでは、複雑さの正味の増加になります。) オーバーロードするだけの場合に知っておく必要のある予期しない落とし穴はあり__cmp__ますか? 私は理解して<、<=、==、などの事業者が他の目的のために、オーバーロードすることができ、そして、彼らが好きな任意のオブジェクトを返すことができます。私はそのアプローチのメリットについて尋ねているのではなく、数値に対して意味するのと同じ意味でこれらの演算子を比較に使用する場合の違いについてのみ尋ねています。 更新: Christopherが指摘したように、cmpは3.xで姿を消しています。上記と同じくらい簡単に比較を実装できる代替手段はあります__cmp__か?

10
リストから外れ値を拒否するための派手な組み込みがありますか
次のようなことをするための派手な組み込みはありますか?つまり、リストdを取得し、filtered_dの点の想定分布に基づいて外れている要素を削除したリストを返しdます。 import numpy as np def reject_outliers(data): m = 2 u = np.mean(data) s = np.std(data) filtered = [e for e in data if (u - 2 * s < e < u + 2 * s)] return filtered >>> d = [2,4,5,1,6,5,40] >>> filtered_d = reject_outliers(d) >>> print filtered_d …
100 python  numpy 


14
標準のjsonモジュールで浮動小数点をフォーマットする
フロートのリストをシリアル化するために、Python 2.6の標準のjsonモジュールを使用しています。しかし、私はこのような結果を得ています: >>> import json >>> json.dumps([23.67, 23.97, 23.87]) '[23.670000000000002, 23.969999999999999, 23.870000000000001]' 浮動小数点数を2桁の10進数のみでフォーマットする必要があります。出力は次のようになります。 >>> json.dumps([23.67, 23.97, 23.87]) '[23.67, 23.97, 23.87]' 私は自分のJSON Encoderクラスを定義しようとしました: class MyEncoder(json.JSONEncoder): def encode(self, obj): if isinstance(obj, float): return format(obj, '.2f') return json.JSONEncoder.encode(self, obj) これは、単一のフロートオブジェクトに対して機能します。 >>> json.dumps(23.67, cls=MyEncoder) '23.67' しかし、ネストされたオブジェクトでは失敗します: >>> json.dumps([23.67, 23.97, 23.87]) '[23.670000000000002, 23.969999999999999, 23.870000000000001]' 私は外部依存関係を持ちたくないので、標準のjsonモジュールを使い続けることを好みます。 …

11
Python関数をピクルする(またはコードをシリアル化する)簡単な方法はありますか?
(asyncoreを使用して)ネットワーク接続を介して関数を転送しようとしています。このような転送のためにPython関数(この場合は少なくとも、副作用がないもの)をシリアル化する簡単な方法はありますか? 理想的には、次のような機能のペアが欲しいです。 def transmit(func): obj = pickle.dumps(func) [send obj across the network] def receive(): [receive obj from the network] func = pickle.loads(s) func()
100 python  function  pickle 

6
無限再帰エラーなしで__getattribute__を実装するにはどうすればよいですか?
クラス内の1つの変数へのアクセスをオーバーライドしたいが、他のすべての変数は通常どおりに戻したい。どうすればこれを達成でき__getattribute__ますか? 私は次のことを試しました(これも私がやろうとしていることを示しています)が、再帰エラーが発生します。 class D(object): def __init__(self): self.test=20 self.test2=21 def __getattribute__(self,name): if name=='test': return 0. else: return self.__dict__[name] >>> print D().test 0.0 >>> print D().test2 ... RuntimeError: maximum recursion depth exceeded in cmp
100 python  class  oop  recursion  getattr 

11
Pythonのファイル/ストリームから複数のJSON値を遅延して読み取るにはどうすればよいですか?
Pythonのファイル/ストリームから複数のJSONオブジェクトを1つずつ読み取りたいのですが。残念ながら、ファイルの終わりまでjson.load()たった.read()のsです。それを使用して単一のオブジェクトを読み取る方法や、オブジェクトを遅延して反復する方法はないようです。 これを行う方法はありますか?標準ライブラリを使用するのが理想的ですが、サードパーティのライブラリがある場合は、代わりにそれを使用します。 現時点では、各オブジェクトを別々の行に配置してを使用json.loads(f.readline())していますが、これを実行する必要はありません。 使用例 example.py import my_json as json import sys for o in json.iterload(sys.stdin): print("Working on a", type(o)) in.txt {"foo": ["bar", "baz"]} 1 2 [] 4 5 6 セッション例 $ python3.2 example.py < in.txt Working on a dict Working on a int Working on a int Working on a …

27
PythonのネットワークにIPがあるかどうかを確認するにはどうすればよいですか?
IPアドレス(192.168.0.1など)が指定されている場合、Pythonのネットワーク(192.168.0.0/24など)にあるかどうかを確認するにはどうすればよいですか? PythonにIPアドレス操作のための一般的なツールはありますか?ホストルックアップ、intへのip adddress、intへのネットマスクを使用したネットワークアドレスなどのようなものですか?うまくいけば、2.5の標準Pythonライブラリにあります。


19
Pythonスクリプトが実行されているかどうかを確認します
Webアプリの一部としてPythonデーモンを実行しています/デーモンが実行されているかどうかを(Pythonを使用して)すばやく確認し、実行されていない場合は起動するにはどうすればよいですか? デーモンのクラッシュを修正するためにそのようにしたいので、スクリプトを手動で実行する必要はありません。呼び出されるとすぐに自動的に実行され、実行を続けます。 スクリプトが実行されているかどうかを(Pythonを使用して)確認するにはどうすればよいですか?
100 python  process  daemon 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.