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

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

6
Djangoテンプレートのユーザープロファイルにアクセスする方法
を使用して、ユーザーごとの追加情報をいくつか保存していAUTH_PROFILE_MODULEます。 を使用してDjangoテンプレートでユーザーにアクセスできますが{{ request.user }}、プロファイルは関数を介してのみアクセスできるので、プロファイルのフィールドにどのようにアクセスしますuser.get_profile()か? 毎回明示的にプロファイルをテンプレートに渡す必要があるのですか?

5
リスト内包表記:各アイテムに対して2つ(またはそれ以上)のアイテムを返す
リスト内包の項目ごとに2つ以上の項目を返すことはできますか? 私が欲しいもの(例): [f(x), g(x) for x in range(n)] 戻るはずです [f(0), g(0), f(1), g(1), ..., f(n-1), g(n-1)] したがって、このコードブロックを置き換えるもの: result = list() for x in range(n): result.add(f(x)) result.add(g(x))

2
Pythonでのstrのパフォーマンス
Pythonコードの一部(python 2.6最大3.2)をプロファイリングしてstrいるときに、オブジェクト(私の場合は整数)を文字列に変換する方法が、文字列の書式設定を使用するよりもほぼ1桁遅いことを発見しました 。 これがベンチマークです >>> from timeit import Timer >>> Timer('str(100000)').timeit() 0.3145311339386332 >>> Timer('"%s"%100000').timeit() 0.03803517023435887 なぜこれが当てはまるのか誰かが知っていますか?私は何かが足りないのですか?

1
16331239353195370.0に特別な意味はありますか?
使用してimport numpy as np私はそれに気づいた np.tan(np.pi/2) タイトルに番号を付けますが、 np.inf 16331239353195370.0 この数が気になります。それはいくつかのシステムマシンの精度パラメータに関連していますか?何かから計算できたでしょうか?(私は似たようなものの線に沿って考えていますsys.float_info) 編集:同じ結果は、Java、octace、matlabなどの他の環境でも実際に再現可能です...しかし、提案された複製は理由を説明していません。

3
sys.path.insert(1、path)の代わりにsys.path.append(path)を使用するのはなぜですか?
編集: Ulf Rompeのコメントに基づいて、「0」ではなく「1」を使用することが重要です。そうしないと、sys.pathが壊れてしまいます。 私はかなり長い間(1年以上)Pythonをやっていますが、なぜ人々がのsys.path.append()代わりに使用することを勧めているのかについていつも混乱していますsys.path.insert()。実演させてください。 PyWorkbooksという名前のモジュール(コンピューターにインストールされている)で作業しているが、同時にPyWorkbooksを組み込んだ別のモジュール(PyJobなど)で作業しているとします。PyJobに取り組んでいるときに、修正しているPyWorkbooksにエラーが見つかったので、開発バージョンをインポートしたいと思います。 両方で作業する方法は複数ありますが(たとえば、PyWorkbooksプロジェクトをPyJob内に配置することもできます)、それでもパスを操作する必要がある場合があります。ただし、PyWorkbooksがあるフォルダーに対して単純にを実行することはできませんsys.path.append()。どうして?PythonはインストールされたPyWorkbooksを最初に見つけるからです! これが、sys.path.insert(1、path_to_dev_pyworkbooks)を実行する必要がある理由です。 要約すれば: sys.path.append(path_to_dev_pyworkbooks) import PyWorkbooks # does NOT import dev pyworkbooks, imports installed one または: sys.path.insert(1, path_to_dev_pyworkbooks) # based on comments you should use **1 not 0** import PyWorkbooks # imports correct file これは過去にいくつかのハングアップを引き起こしました、そしてsys.path.insert(1, path)あなたが手動でパスを挿入しているように、私たち(コミュニティとして)が推薦し始めたら本当にそれが欲しいです私はそれがあなたが望むパスであると言っても安全だと思います使用する! それとも何か問題がありますか?それは時々私を悩ませ、私はそれをオープンに望んでいた質問です!



2
プロットするための推奨される方法はどれですか:matplotlibまたはpylab?[閉まっている]
クローズ。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 2年前に閉鎖されました。 この質問を改善する 次のいずれかを使用してPythonでプロットできることがわかります。 import matplotlib matplotlib.pyplot.plot(...) または: import pylab pylab.plot(...) これらは両方とも同じmatplotlibプロットコードを使用します。 では、Matplotlibの開発者/ドキュメントが現在プロットするためのより良い方法として推奨しているのはどれですか?どうして?

7
Pythonにlxmlモジュールをインストールする
Pythonスクリプトの実行中に、このエラーが発生しました from lxml import etree ImportError: No module named lxml 今私はlxmlをインストールしようとしました sudo easy_install lmxl しかし、それは私に次のエラーを与えます Building lxml version 2.3.beta1. NOTE: Trying to build without Cython, pre-generated 'src/lxml/lxml.etree.c' needs to be available. ERROR: /bin/sh: xslt-config: not found ** make sure the development packages of libxml2 and libxslt are installed ** libxsltのビルド構成を使用する …

21
2つのリストを交互に組み合わせるPythonの方法は?
2つのリストがあり、最初のリストには2番目のリストよりも正確に1つ多いアイテムが含まれていることが保証されています。偶数インデックス値が最​​初のリストから取得され、奇数インデックス値が2番目のリストから取得される新しいリストを作成するための最もPython的な方法を知りたいです。 # example inputs list1 = ['f', 'o', 'o'] list2 = ['hello', 'world'] # desired output ['f', 'hello', 'o', 'world', 'o'] これは機能しますが、きれいではありません。 list3 = [] while True: try: list3.append(list1.pop(0)) list3.append(list2.pop(0)) except IndexError: break 他にどのようにこれを達成できますか?最もPythonicなアプローチは何ですか?
88 python 

4
Pythonで空のリストの辞書を初期化するにはどうすればよいですか?
プログラムでリストの辞書を作成しようとしても、辞書キーを個別にアドレス指定できません。リストの辞書を作成して1つのキーに追加しようとすると、すべてのキーが更新されます。非常に単純なテストケースを次に示します。 data = {} data = data.fromkeys(range(2),[]) data[1].append('hello') print data 実結果: {0: ['hello'], 1: ['hello']} 期待される結果: {0: [], 1: ['hello']} これが機能するものです data = {0:[],1:[]} data[1].append('hello') print data 実際の結果と期待される結果: {0: [], 1: ['hello']} fromkeysメソッドが期待どおりに機能しないのはなぜですか?

4
反復文字列追加の時間計算量は実際にはO(n ^ 2)ですか、それともO(n)ですか?
私はCTCIの問題に取り組んでいます。 第1章の3番目の問題は、次のような文字列を取ることです。 'Mr John Smith ' 中間スペースを%20次のように置き換えるように求められます: 'Mr%20John%20Smith' 著者はこのソリューションをPythonで提供し、O(n)と呼んでいます。 def urlify(string, length): '''function replaces single spaces with %20 and removes trailing spaces''' counter = 0 output = '' for char in string: counter += 1 if counter > length: return output elif char == ' ': output = output + …

3
Flask @ app.routeからPythonコンソールに印刷する方法
ユーザーが/ buttonを呼び出した後、Pythonコンソールに「helloworld」を出力したいと思います。 これは私の素朴なアプローチです: @app.route('/button/') def button_clicked(): print 'Hello world!' return redirect('/') 背景:(シェルではなく)フラスコから他のPythonコマンドを実行したいと思います。「印刷」が最も簡単なケースです。私はここで基本的なひねりを理解していないと思います。前もって感謝します!
88 python  flask 

6
マルチプロセッシングプロセス間で大規模な読み取り専用のNumpy配列を共有する
60GBのSciPyアレイ(マトリックス)があり、5つ以上のmultiprocessing Processオブジェクト間で共有する必要があります。私はnumpy-sharedmemを見て、SciPyリストでこの議論を読みました。2つのアプローチがあるようです-numpy-sharedmemとを使用してmultiprocessing.RawArray()NumPyをdtypesにマッピングしctypeます。さて、これnumpy-sharedmemが進むべき道のようですが、良い参考例はまだ見ていません。配列(実際には行列)は読み取り専用になるため、ロックは必要ありません。さて、サイズが大きいので、コピーは避けたいと思います。それはのように聞こえる正しい方法で作成することであるだけとして配列のコピーをsharedmem配列し、その後にそれを渡すProcessオブジェクト?いくつかの具体的な質問: sharedmemハンドルを実際にサブに渡すための最良の方法は何Process()ですか?1つの配列を渡すためだけにキューが必要ですか?パイプの方がいいでしょうか?Process()サブクラスのinit(pickle化されていると想定している)への引数として渡すことはできますか? 上でリンクしたディスカッションでnumpy-sharedmemは、64ビットセーフではないという言及がありますか?私は間違いなく32ビットアドレス指定できないいくつかの構造を使用しています。 このRawArray()アプローチにはトレードオフがありますか?遅い、バギー? numpy-sharedmemメソッドにctypeからdtypeへのマッピングが必要ですか? 誰かがこれを行ういくつかのオープンソースコードの例を持っていますか?私は非常に実践的な知識を持っており、良い例がなければ、これを機能させるのは困難です。 他の人にこれを明確にするために私が提供できる追加情報がある場合は、コメントしてください。追加します。ありがとう! これはUbuntuLinuxと多分MacOSで実行する必要がありますが、移植性は大きな問題ではありません。

9
IOError:[Errno 32]壊れたパイプ:Python
私は非常に単純なPython3スクリプトを持っています: f1 = open('a.txt', 'r') print(f1.readlines()) f2 = open('b.txt', 'r') print(f2.readlines()) f3 = open('c.txt', 'r') print(f3.readlines()) f4 = open('d.txt', 'r') print(f4.readlines()) f1.close() f2.close() f3.close() f4.close() しかし、それは常に言います: IOError: [Errno 32] Broken pipe これを修正するための複雑な方法をすべてインターネットで見ましたが、このコードを直接コピーしたので、PythonのSIGPIPEではなくコードに問題があると思います。 出力をリダイレクトしているので、上記のスクリプトの名前が「open.py」の場合、実行するコマンドは次のようになります。 open.py | othercommand

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