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

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

12
破壊-辞書の内容をバインドする
辞書を「分解」して、値をそのキーの後の変数名に関連付けようとしています。何かのようなもの params = {'a':1,'b':2} a,b = params.values() ただし、辞書は順序付けられていないparams.values()ため、(a, b)。の順序で値を返すという保証はありません。これを行うための良い方法はありますか?

2
オプションタイプのヒントはどのように使用すればよいですか?
Optionalタイプヒントの使い方を理解しようとしています。PEP-484、私が使用することができます知っているOptionalためにdef test(a: int = None)どちらかとdef test(a: Union[int, None])かdef test(a: Optional[int])。 しかし、次の例はどうですか? def test(a : dict = None): #print(a) ==> {'a': 1234} #or #print(a) ==> None def test(a : list = None): #print(a) ==> [1,2,3,4, 'a', 'b'] #or #print(a) ==> None Optional[type]と同じ意味のように思われる場合Union[type, None]、なぜ私Optional[]はまったく使用する必要がありますか?

2
トルネードはいつどのように使用しますか?いつ役に立たないのですか?
わかりました。トルネードは非ブロッキングで非常に高速で、多くの継続的なリクエストを簡単に処理できます。 しかし、それは特効薬ではないと思います。DjangoベースのサイトやTornadoを使用する他のサイトを盲目的に実行しただけでは、パフォーマンスは向上しません。 私はこれの包括的な説明を見つけることができなかったので、私はここでそれを尋ねています: トルネードはいつ使用する必要がありますか? いつ役に立たないのですか? それを使用するとき、何を考慮に入れるべきですか? Tornadoを使用して非効率的なサイトを作成するにはどうすればよいですか? サーバーとWebフレームワークがあります。フレームワークはいつ使用する必要があり、いつ他のフレームワークに置き換えることができますか?

7
Python urllib2、基本HTTP認証、およびtr.im
私は遊んでいて、tr.imAPIを 使用してURLを短くするコードを書こうとしています。 http://docs.python.org/library/urllib2.htmlを読んだ後、私は試しました: TRIM_API_URL = 'http://api.tr.im/api' auth_handler = urllib2.HTTPBasicAuthHandler() auth_handler.add_password(realm='tr.im', uri=TRIM_API_URL, user=USERNAME, passwd=PASSWORD) opener = urllib2.build_opener(auth_handler) urllib2.install_opener(opener) response = urllib2.urlopen('%s/trim_simple?url=%s' % (TRIM_API_URL, url_to_trim)) url = response.read().strip() response.codeは200です(202になるはずです)。urlは有効ですが、短縮URLが私のURLリスト(http://tr.im/?page=1)にないため、基本HTTP認証が機能していないようです。 http://www.voidspace.org.uk/python/articles/authentication.shtml#doing-it-properly を読んだ後、私も試しました: TRIM_API_URL = 'api.tr.im/api' password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm() password_mgr.add_password(None, TRIM_API_URL, USERNAME, PASSWORD) auth_handler = urllib2.HTTPBasicAuthHandler(password_mgr) opener = urllib2.build_opener(auth_handler) urllib2.install_opener(opener) response = urllib2.urlopen('http://%s/trim_simple?url=%s' % …

7
改行で区切られたファイルを読み取り、改行を破棄するための最良の方法は?
Pythonで改行区切りファイルを読み取るときに、改行を取り除くための最良の方法を決定しようとしています。 私が思いついたのは次のコードで、テストする使い捨てコードが含まれています。 import os def getfile(filename,results): f = open(filename) filecontents = f.readlines() for line in filecontents: foo = line.strip('\n') results.append(foo) return results blahblah = [] getfile('/tmp/foo',blahblah) for x in blahblah: print x 提案?
84 python  file  readline 


5
lxmlの要素を削除する方法
Pythonのlxmlを使用して、属性の内容に基づいて要素を完全に削除する必要があります。例: import lxml.etree as et xml=""" <groceries> <fruit state="rotten">apple</fruit> <fruit state="fresh">pear</fruit> <fruit state="fresh">starfruit</fruit> <fruit state="rotten">mango</fruit> <fruit state="fresh">peach</fruit> </groceries> """ tree=et.fromstring(xml) for bad in tree.xpath("//fruit[@state=\'rotten\']"): #remove this element from the tree print et.tostring(tree, pretty_print=True) これを印刷したい: <groceries> <fruit state="fresh">pear</fruit> <fruit state="fresh">starfruit</fruit> <fruit state="fresh">peach</fruit> </groceries> 次のように、一時変数を保存して手動で出力せずにこれを行う方法はありますか? newxml="<groceries>\n" for elt in tree.xpath('//fruit[@state=\'fresh\']'): newxml+=et.tostring(elt) newxml+="</groceries>"
84 python  xml  lxml 

10
固定幅のファイルを効率的に解析する方法は?
固定幅の行を保持するファイルを解析する効率的な方法を見つけようとしています。たとえば、最初の20文字は列を表し、21:30から別の列を表します。 行が100文字を保持していると仮定すると、行をいくつかのコンポーネントに解析する効率的な方法は何でしょうか。 行ごとに文字列スライスを使用することもできますが、行が大きい場合は少し醜いです。他に速い方法はありますか?
84 python  parsing 

6
引数にアンダースコアを付けたPythonのラムダ?
次のコードは何をしますか? a = lambda _:True インタラクティブプロンプトで読んでテストしたところ、常にを返す関数のようTrueです。 私はこれを正しく理解していますか?アンダースコア(_)も使用された理由を理解したいと思います。
84 python  lambda 

5
スレッドでグローバル変数を使用する
グローバル変数をスレッドと共有するにはどうすればよいですか? 私のPythonコード例は次のとおりです。 from threading import Thread import time a = 0 #global variable def thread1(threadname): #read variable "a" modify by thread 2 def thread2(threadname): while 1: a += 1 time.sleep(1) thread1 = Thread( target=thread1, args=("Thread-1", ) ) thread2 = Thread( target=thread2, args=("Thread-2", ) ) thread1.join() thread2.join() 2つのスレッドで1つの変数を共有する方法がわかりません。

6
* argsおよび** kwargsを使用したデフォルトの引数
Python 2.xのでデフォルト引数を使用する適切な方法である(私は2.7を使用)、*argsおよび**kwargs? このトピックに関連するSOに関する質問を見つけましたが、それはPython 3用です: * args、** kwargs、およびオプション/デフォルトの引数を使用してPython関数を呼び出す そこで、彼らはこの方法が機能すると言います: def func(arg1, arg2, *args, opt_arg='def_val', **kwargs): #... 2.7では、結果はSyntaxError。になります。そのような関数を定義するための推奨される方法はありますか? 私はそれをこのように機能させましたが、もっと良い解決策があると思います。 def func(arg1, arg2, *args, **kwargs): opt_arg ='def_val' if kwargs.__contains__('opt_arg'): opt_arg = kwargs['opt_arg'] #...

6
dictを適切にサブクラス化し、__ getitem __&__ setitem__をオーバーライドする方法
私はいくつかのコードをデバッグしていて、特定の辞書がいつアクセスされるかを知りたいです。まあ、それは実際にはサブクラスでdictあり、いくつかの追加機能を実装するクラスです。とにかく、私がやりたいのは、dict自分自身をサブクラス化し、オーバーライド__getitem__を追加__setitem__して、デバッグ出力を生成することです。今、私は持っています class DictWatch(dict): def __init__(self, *args): dict.__init__(self, args) def __getitem__(self, key): val = dict.__getitem__(self, key) log.info("GET %s['%s'] = %s" % str(dict.get(self, 'name_label')), str(key), str(val))) return val def __setitem__(self, key, val): log.info("SET %s['%s'] = %s" % str(dict.get(self, 'name_label')), str(key), str(val))) dict.__setitem__(self, key, val) 'name_label'は、出力を識別するために使用したい最終的に設定されるキーです。次に、インストルメントしているクラスをDictWatch代わりにサブクラスにdict変更し、スーパーコンストラクターへの呼び出しを変更しました。それでも、何も起こっていないようです。頭がいいと思っていたのですが、別の方向に進むべきかと思いました。 助けてくれてありがとう!


8
Python:セット内のエントリを1つの文字列に結合する方法は?
基本的に、1つの文字列を出力するために、セット内のエントリを結合しようとしています。リストの結合関数に似た構文を使用しようとしています。これが私の試みです: list = ["gathi-109","itcg-0932","mx1-35316"] set_1 = set(list) set_2 = set(["mx1-35316"]) set_3 = set_1 - set_2 print set_3.join(", ") ただし、次のエラーが発生します。 AttributeError: 'set' object has no attribute 'join' セットの同等の呼び出しは何ですか?
84 python  list  set  python-2.7 

5
リストの要素を分割する方法は?
私はリストを持っています: my_list = ['element1\t0238.94', 'element2\t2.3904', 'element3\t0139847'] \tこの結果を得るために、その後すべてを削除するにはどうすればよいですか? ['element1', 'element2', 'element3']
84 python  list  split 

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