プログラミング

プロおよび熱狂的プログラマーのためのQ&A


3
* argsおよび** kwargsの型注釈
いくつかのインターフェイスを作成するために、抽象基本クラスを使用してPythonの型注釈を試しています。*argsandの可能なタイプに注釈を付ける方法はあり**kwargsますか? たとえば、関数への賢明な引数が1つintまたは2つintのであることをどのように表現しますか?type(args)与えTuple私の推測のようにタイプに注釈を付けることだったのでUnion[Tuple[int, int], Tuple[int]]、これは動作しません。 from typing import Union, Tuple def foo(*args: Union[Tuple[int, int], Tuple[int]]): try: i, j = args return i + j except ValueError: assert len(args) == 1 i = args[0] return i # ok print(foo((1,))) print(foo((1, 2))) # mypy does not like this print(foo(1)) print(foo(1, 2)) mypyからのエラーメッセージ: t.py: …

5
docker-compose.ymlのエントリポイントに引数を渡す方法
この画像を使用します:dperson / samba 画像はそれ自体のエントリポイントを定義しており、上書きしたくありません。 エントリポイントに引数を渡す必要があります。Dockerを使用するだけで簡単です。 docker run ... dperson/samba arg1 arg2 arg3 しかし、docker_compose.ymlでそれを行う方法は? 現在、私は回避策として使用します: command: samba.sh arg1 arg2 arg3 しかし、私はエントリポイントの再定義を強制するので、それは満足のいくものではありません。

6
空のnumpy配列に新しい行を追加する方法
標準のPython配列を使用して、次のことができます。 arr = [] arr.append([1,2,3]) arr.append([4,5,6]) # arr is now [[1,2,3],[4,5,6]] しかし、私はnumpyで同じことをすることはできません。例えば: arr = np.array([]) arr = np.append(arr, np.array([1,2,3])) arr = np.append(arr, np.array([4,5,6])) # arr is now [1,2,3,4,5,6] 私も調べましたvstackがvstack、空の配列で使用すると、次のようになります。 ValueError: all the input array dimensions except for the concatenation axis must match exactly では、numpyの空の配列に新しい行を追加するにはどうすればよいですか?
158 python  numpy  scipy 

10
複数行の出力を1行に連結する方法は?
コマンドを実行すると、cat file | grep pattern何行もの出力が得られます。すべての行を1行に連結して、各行"\n"を"\" "(末尾に"スペースが続く)で効果的に置き換えるにはどうすればよいですか? cat file | grep pattern | xargs sed s/\n/ /g 私のために働いていません。
158 linux  bash  unix  grep  tr 

6
パンダの操作中の進行状況インジケーター
1,500万行を超えるデータフレームでパンダ操作を定期的に実行しており、特定の操作の進行状況インジケーターにアクセスしたいです。 パンダのsplit-apply-combine操作のテキストベースの進行状況インジケーターはありますか? たとえば、次のようなものです。 df_users.groupby(['userID', 'requestDate']).apply(feature_rollup) どこfeature_rollup多くのDF列を取るやや関与関数であり、様々な方法で新しいユーザー列を作成します。大きなデータフレームの場合、これらの操作にはしばらく時間がかかる可能性があるため、進行状況を更新するiPythonノートブックでテキストベースの出力が可能かどうかを知りたいです。 これまでのところ、Pythonの標準ループ進捗インジケーターを試しましたが、意味のある方法でパンダと相互作用しません。 私がパンダのライブラリ/ドキュメントで見落としてきた、split-apply-combineの進行状況を知ることができるものがあることを願っています。単純な実装では、apply関数が動作しているデータフレームサブセットの総数を調べて、それらのサブセットの完了した部分として進行状況を報告します。 これはおそらくライブラリに追加する必要があるものですか?
158 python  pandas  ipython 

14
「Java」は内部または外部コマンドとして認識されません
実行しているJavaの現在のバージョンを確認しようとすると、「Javaが内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されません。」というエラーが表示されました。 私はWindows 7 OSを実行していて、最新のJDKをダウンロードしていて、「java -version」コマンドを使用してJavaバージョンを確認する前に、誤ってマシンからjavaを削除した可能性があると感じました。 マシンでJavaを再び動作させるには、どのソフトウェアをダウンロードする必要がありますか? 編集: すべての環境変数が現在のJava SDKを指していることを確認した後、なんとかしてcmdからJavaを実行することができました。私の質問に対するすべての回答をありがとう。 カレン
158 java 

13
ループ内で変数を宣言するためのオーバーヘッドはありますか?(C ++)
次のようなことをすると、速度や効率が低下するのではないかと思っています。 int i = 0; while(i < 100) { int var = 4; i++; } これはint var100回宣言します。あるように思えますが、よくわかりません。代わりにこれを行う方がより実用的/高速でしょうか? int i = 0; int var; while(i < 100) { var = 4; i++; } それとも、速度的にも効率的にも同じですか?

14
React Nativeエラー:ENOSPC:ファイルウォッチャーの数のシステム制限に達しました
新しい空白のreactネイティブアプリをセットアップしました。 いくつかのノードモジュールをインストールした後、このエラーが発生しました。 Running application on PGN518. internal/fs/watchers.js:173 throw error; ^ Error: ENOSPC: System limit for number of file watchers reached, watch '/home/badis/Desktop/react-native/albums/node_modules/.staging' at FSWatcher.start (internal/fs/watchers.js:165:26) at Object.watch (fs.js:1253:11) at NodeWatcher.watchdir (/home/badis/Desktop/react-native/albums/node modules/sane/src/node watcher. js:175:20) at NodeWatcher.<anonymous> (/home/badis/Desktop/react-native/albums/node modules/sane/src/node watcher. js:310:16) at /home/badis/Desktop/react-native/albums/node modules/graceful-fs/polyfills.js:285:20 at FSReqWrap.oncomplete (fs.js:154:5) ウォッチマンがすべてのファイル変更を監視するのに十分なスペースがないことに関連していることを私は知っています。 ここで取るべき最善の行動方針を知りたいですか? node_modulesフォルダを追加して無視する必要があります.watchmanconfigか?

3
テストエクスプローラー(VS)に「<不明なプロジェクト>」と表示される
以下のすべては、.NET Framework 4.7とNUnit + NUnit3TestAdapterを使用してVS2019で作成されています Exitus.Testsというアセンブリを作成し、いくつかの単体テストを追加しました。しかし、解決できなかったNugetのいくつかの問題を解決するには、Exitus.UnitTestsと呼ばれる別のプロジェクトを作成し、古いプロジェクトにあった以前のファイル(名前空間の変更を含む)を削除しました。 これで、新しいテストプロジェクトはエクスプローラーで正しくopを示しましたが、古いプロジェクトの「ゴースト」が残りました。 テストを実行しようとすると、出力ウィンドウに次のエラーが表示されます。 System.InvalidOperationException:次のTestContainerが見つかりませんでした 'C:\ Users \ xxx \ Source \ Repositories \ Expire \ Exitus.Tests \ bin \ Debug \ Exitus.Tests.dll' Microsoft.VisualStudio.TestWindow.Client.TestContainer.TestContainerProviderで.d__46.MoveNext()---例外がスローされた前の場所からのスタックトレースの終わり--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task )Microsoft.VisualStudio.TestWindow.Controller.TestContainerConfigurationQueryByTestsBase.d__6.MoveNext()(...)で スタックトレースははるかに長くなりますが、興味深いのは2行目にあり、でテストコンテナが見つからなかったことを示しています\Exitus.Tests\bin\Debug\Exitus.Tests.dll。これは、私が削除して削除した古いテストプロジェクトの名前です。プロジェクト全体で用語Exitus.Testsを検索しましたが、結果が返されません。 とにかくこの「ゴースト」プロジェクトを強制的に削除する方法はありますか?
157 c#  visual-studio  nunit 




6
シェルコマンドを直接実行するのではなく、なぜPythonのosモジュールメソッドを使用するのですか?
os.system()またはでコマンドを実行するのではなく、ファイル/ディレクトリの作成、ファイル属性の変更などのOS固有のタスクを実行するためにPythonのライブラリ関数を使用する背後にある動機は何subprocess.call()ですか? たとえば、なぜ私はos.chmod代わりに使用したいのos.system("chmod...")ですか? シェルコマンドを直接実行するのではなく、Pythonの利用可能なライブラリメソッドをできるだけ使用する方が「pythonic」であると理解しています。しかし、機能の観点からこれを行う背後にある他の動機はありますか? ここでは、単純な1行のシェルコマンドの実行についてのみ説明しています。タスクの実行をより詳細に制御する必要がある場合subprocess、たとえば、モジュールを使用するほうが理にかなっていることを理解しています。


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