22/05/26 13:45:15.95 veL/wiLO0.net
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。
・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
エラー文(勝手に省略orスクショうp等の横着禁止)と
おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。
★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
URLリンク(techiedelight.com) Run Code機能あり。
URLリンク(ideone.com) デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
URLリンク(pastebin.com) まずまずシンプル。
URLリンク(dpaste.com) とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Pythonオフィシャルサイト URLリンク(www.python.org)
◇Pythonドキュメント URLリンク(docs.python.org)
◇まとめwiki URLリンク(python.rdy.jp)
●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その57
スレリンク(tech板)
〇前スレ〇 Pythonのお勉強 Part66
スレリンク(tech板)
次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ###
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2:デフォルトの名無しさん
22/05/26 13:48:08.49 veL/wiLO0.net
↑codepadはpython3非対応なので消した
3:デフォルトの名無しさん (ワッチョイ 7ab1-+wNt)
22/05/26 16:23:59 OY3Y1Jms0.net
tensorflow.kerasでadamでモデルフィッティングしました
いまいちなのでsgdに変えてチェックポイントから計算し直したいのですが、
単純に変えると発散してしまいます
どうにかしてせっかくadamでフィッティングしたものを利用する方法ないでしょうか?
4:デフォルトの名無しさん
22/05/26 16:44:41.91 RA3YWIOM0.net
ideoneのPythonは
Python (PyPy 2.7.13)
URLリンク(ideone.com)
と
Python 3 nbc (python 3.7.3)
URLリンク(ideone.com)
5:デフォルトの名無しさん
22/05/26 16:52:36.61 RA3YWIOM0.net
ideoneのPythonは
バージョン2(無印)の方がdecimalは高機能。
URLリンク(ideone.com)
同じ指定でバージョン3ではオーバーフローしてエラーになる。
URLリンク(ideone.com)
6:デフォルトの名無しさん
22/05/26 19:47:27.33 n28LTFZK0.net
回帰問題で最後にDense(1)の層を設けています
model.fitしてcsv出力すると、[[値]]という形になってしまいます
[[]]なしで出力するにはどうしたらいいでしょうか
7:デフォルトの名無しさん (ワッチョイ 4e10-ry9z)
22/05/26 20:14:19 eoVlNEHk0.net
squeeze
8:デフォルトの名無しさん
22/05/27 06:51:32.42 qWW7ZmBg0.net
パッケージのみのインストールで(外部ソフトを使わずに)、CSVのデータを
SELECT * FROM CSV GROUP BY ID;
することはできますか?
9:デフォルトの名無しさん
22/05/27 07:12:44.39 B6xNKKDn0.net
>>8
URLリンク(pypi.org)
いくつかみたけどSpyQL推し
10:デフォルトの名無しさん
22/05/27 11:03:48.90 sl5YbF8tH.net
いっぱいあるなw
俺はMySQL使ってたわ
DBソフト使わないほうが汎用性あっていいかもな
どれがメジャーなんだろ
11:デフォルトの名無しさん
22/05/27 11:34:22.96 S0cy91Tb0.net
筋が悪すぎ
12:デフォルトの名無しさん
22/05/27 12:22:59.77 3ww/VfmM0.net
前スレのpyenvでハマってた人はpyenvの使い方をちゃんと調べた方がいい。
答えだけ書いておくと、pyenv local 3.8.12とすればそのディレクトリではpython3.8.12が使える。
13:デフォルトの名無しさん
22/05/27 15:41:53.92 ZzokvAUj.net
FXなどマーケットのtickデータってmysqlとかで管理しないほうがいいでしょうか?
実際のチャートの表示は部分的ですが
たとえば1分間のデータで3年分だと
1576800レコードあります
そういうのに特化した管理方法などあるのでしょうか?
14:デフォルトの名無しさん
22/05/27 18:41:13.84 I0SMihGo0.net
leetcodeの一番最初のtwoSumのやつ
URLリンク(leetcode.com)
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
↑この部分が見慣れないから困ってる
まあ、int型として入れますよ、的な意味だとは思ってるんだが
これをこのまま自分のエディタにコピペして
List = [2,7,11,15]
target = 9
とやってみるとエラーになるんだよな
TypeError: list indices must be integers or slices, not type
15:デフォルトの名無しさん
22/05/27 19:15:24.02 jqbkm0c50.net
Google Colabでアニメーションを見るためのソースコードがあります。
from matplotlib import animation
from IPython.display import HTML
anim=animation.FuncAnimation(fig, animate, frames=len(s_a_history), interval=200, repeat=False)
HTML(anim.tp_jshtml())
これ、当然PCローカル環境では見れないんですが、ローカルでアニメーション見たいときにはどう記述すればいいでしょうか?
16:デフォルトの名無しさん
22/05/27 19:16:43.38 jqbkm0c50.net
最後の行、タイプミス、正しくは
HTML(anim.to_jshtml())
です。
17:デフォルトの名無しさん
22/05/27 19:29:16.40 LnlX87BZH.net
plt.show()
18:デフォルトの名無しさん
22/05/27 19:30:04.68 hv6nsduM0.net
gdstkなるモジュールをpipじゃなくソースファイルからコンパイルされた方おられますか?
19:デフォルトの名無しさん
22/05/27 19:48:57.09 hv6nsduM0.net
gdstkなるモジュールをpipじゃなくソースファイルからコンパイルされた方おられますか?
20:デフォルトの名無しさん
22/05/27 20:23:59.32 vflblMVYH.net
ちょっと調べたけど、データベースソフト使うようなことは簡単なことならPandasで処理するのが普通っぽい
それで合ってる?
21:デフォルトの名無しさん
22/05/27 22:28:17.60 uIOjUPeFM.net
データベースはデータの永続化が主目的では?
22:デフォルトの名無しさん
22/05/27 22:34:04.67 j0sbCc+N0.net
任意の項目でソートするのに一時テーブル使った事があるな
23:デフォルトの名無しさん
22/05/27 23:22:52.06 ljm69V8Ma.net
>>21
まあ主目的はそうかも知れんがソートや集計でDB使うのは別に変じゃない
import sqlite3
connection = sqlite3.connect(':memory:')
とかしてインメモリーでDB作れるし
24:デフォルトの名無しさん
22/05/28 00:56:13.65 BwCRI8LG0.net
出来るのはわかるけど、Pandasで済むことをわざわざSQLでやりたい理由がわかんないな。
大量データだったりしてPandasでやると遅過ぎるとかそういう特殊ケースはわかるけど。
25:デフォルトの名無しさん
22/05/28 01:07:49.15 BwCRI8LG0.net
>>14
Listにリストを代入したらListという名前のものが、type hintsのList(typing._GenericAlias型のオブジェクトだそうだ)から、単なる普通のリストになってしまう(上書きされる)から、
l = [1,2,3]
l[int]としているのといっしょでおかしくなってしまう。
素直にnumsとtargetに代入してsolution.twoSum(nums, target)で実行してみ。
というかあなたにtype hintsは早い気がする。もうちょっと基礎を固めた方がいいかと。
26:デフォルトの名無しさん
22/05/28 08:59:15.96 hJZUTFMkH.net
Pandasでgroupbyしたあとにそのままcsv_writer.writerowsすると、
" dt
id
112893131 2022-05-28 01:14:17.959048
117235633 2022-05-28 04:44:25.937787
117595341 2022-05-28 08:44:33.609629
124985419 2022-05-28 04:44:25.937787
126672345 2022-05-28 01:14:17.959048
... ...
969901237 2022-05-28 01:14:17.959048
978855671 2022-05-28 07:44:31.638705
979053384 2022-05-28 01:14:17.959048
989614658 2022-05-28 05:44:27.929561
998605384 2022-05-28 00:44:16.960893
[138 rows x 1 columns]"
と出力されてしまいます。
.iloc[i]をwriterowすると、
"dt 2022-05-28 01:14:17.959048
Name: (112893131), dtype: object"
となってしまいます。
どうしたらCSVのきれいな表として出力されるでしょうか?
27:デフォルトの名無しさん
22/05/28 09:09:00.03 8siWyhD60.net
>>25
なんとなくわかった
>あなたにtype hintsは早い気がする。もうちょっと基礎を固めた方がいいかと。
自分ももっと勉強したいんだけど、ネット上の初心者コース終わったあとの先がわからないんだよね
どこで学べばいいんだ?
28:デフォルトの名無しさん
22/05/28 09:28:46.82 x+x8TMTiH.net
import csvじゃなくてto_csv使ったらうまくいきました
お騒がせしてすみませんでした
29:デフォルトの名無しさん
22/05/28 09:56:52.64 BDCTKJeU0.net
>>27
普通は書きたいもの書きながら自己進化していく
道具は最低限の使い方さえ覚えれば、あとは使うだけ
30:デフォルトの名無しさん
22/05/28 14:14:30.81 rqCjl4M3M.net
>>12
レスありがとうございます。
pyenv調べてみます。
31:デフォルトの名無しさん
22/05/28 14:29:08.07 /tBn2fMh0.net
え?調べるってまだ配布元のREADMEよんでないのかよw
32:デフォルトの名無しさん
22/05/28 15:50:25.17 hZokRc+F0.net
READMEってどういう意味?
33:デフォルトの名無しさん
22/05/28 16:05:38.48 oEEaOXMd0.net
私を読め
34:デフォルトの名無しさん
22/05/28 16:10:06.49 zh4+aziR0.net
私の嫁
35:デフォルトの名無しさん
22/05/28 16:13:18.99 zElwYawI0.net
どの言語にも限らずに公式ドキュメントを全く読まないマンがたまに出てくるな
英語で分かりづらいかもしれんけど、Chromeの日本語翻訳でだいたい雰囲気分かるぞ
36:デフォルトの名無しさん
22/05/28 17:57:33.67 qfL9tViN0.net
昔と違って説明書一切付けないガジェット増えたしな。CHEATSEET.PNGとか付けたら読んでくれるかも
37:デフォルトの名無しさん
22/05/28 18:01:20.13 DrsyU/Zk0.net
日本で言う楽々携帯が海外におけるアイフォンの立ち位置なんですが。
日本では中高生の間でアイフォンが人気なんですよ。
ITなんて全く向いていない国。
38:デフォルトの名無しさん
22/05/28 18:19:10.55 EmXYdsgj0.net
kotlinの公式は読みやすいけどJavaは本当にカオス
39:デフォルトの名無しさん (ワッチョイ d901-2OYr)
22/05/28 18:51:08 6Sv+ENTH0.net
・塩野義製薬が週休3日制導入へ 来年4月、副業も解禁
・塩野義製薬が「週休3日」選択可能に 給与は『週休2日の8割』副業や学び直しを支援
・【フォーカス】サタケ/週休3日制 通年導入めざし夏季のみ試行中 交代制で水曜を休日に
・旅館なのに週休3日!?陣屋・若女将の常識を覆した組織改革
・“時代錯誤”から残業ゼロ、週休3日に! 鳥取の不動産会社が
レガシー企業からDX先進企業になれたワケ
・ネクスウェイ、週休4日制・1日3時間勤務選択できる勤務体系を導入
・日本初「週休4日制度」で、優秀な人材を採用するしくみとは? ?
ナレッジソサエティ久田社長に聞いてみた
40:デフォルトの名無しさん (ワッチョイ d901-2OYr)
22/05/28 18:51:40 6Sv+ENTH0.net
・サイボウズ青野社長、「本業に集中しないから副業禁止」はあり得ない
・サイボウズでは、100人100通りの働き方が可能「多様過ぎるワークスタイル」が生まれた背景
・訪看、ケアマネ自宅で記録 IT活用で在宅ワーク・フレックス勤務
・パナソニックの社内ベンチャー「ゲームチェンジャー・カタパルト」で
事業化されるかもしれない注目の新規ビジネス
・ゼネコン鹿島、DX化で狙う建設業界の地殻変動
・NTTドコモ、建設業向けDXの新会社 コマツ、野村総合研究所などと共同で
41:567
22/05/28 19:13:58.18 SqtageG+d.net
>>29
書きたいものがない人が進化するためになにかないですかね?
42:デフォルトの名無しさん
22/05/28 20:42:29.02 t9I4tP9kH.net
>>41
そういう人間はそこでおしまい
43:デフォルトの名無しさん
22/05/28 21:01:08.64 +HgSvHyYH.net
こういうことできないかなー、って思ったらそれがやりたいことになるんじゃないの
それがないなら進化する意味がない
44:デフォルトの名無しさん
22/05/28 21:11:46.20 hZokRc+F0.net
AtCoderみたいなのでもやってれば
45:デフォルトの名無しさん
22/05/28 21:12:27.13 0GsbTYu7M.net
俺もやりたいことないからバイト始めたけどスクレイピングおすすめ
46:デフォルトの名無しさん
22/05/28 22:16:49.17 I3uIL+k90.net
小説でも良いし音楽でも良い
自分が書きたいと思ったものを見つける事だ
人に教えてもらうものではない
47:デフォルトの名無しさん
22/05/28 22:49:04.74 BDCTKJeU0.net
pythonに限らんけど
別に何がしたいわけではなくて
pythonを勉強してるんですっていうやつおるけど
ガッコーの勉強の延長線上なんだろうな
俺は時間のムダだと思う
48:デフォルトの名無しさん
22/05/28 22:54:59.28 AXe4zJa2M.net
o2popperのコマンドラインでの使い方を教えてくれませんか?
49:デフォルトの名無しさん
22/05/28 22:56:09.06 EmXYdsgj0.net
ヲタクの答えだろそれは
普通の人は仕事なんて嫌々やるもんだよ
50:デフォルトの名無しさん
22/05/28 22:57:22.45 sPLhNmnVM.net
>>41
日頃何かにイライラしないならプログラマには向いてないから他の仕事考えた方がいいよ
51:デフォルトの名無しさん
22/05/28 23:08:23.51 BwCRI8LG0.net
>>41
なんかプログラミングのバイトみたいなのを見つけちゃうと早いけど、
それが叶わない場合は、一旦Pythonの勉強から離れて色々なソフトウェア技術を見て回るのがいいんじゃないかな。
Pythonで始めるなんとか、みたいな本を検索してやってみたいものを探す、でもいいけど
他の趣味と結びつけてみる、という手もある。
もし無趣味な場合、趣味をどうやって見つけるかというのは、多趣味ですぐいろいろなことに興味を持つ自分には簡単なんだが、人によっては難しいらしいねー
52:デフォルトの名無しさん
22/05/28 23:08:35.76 m8noV3wp0.net
function annotationsって
関数に-> つけるやつ。
一般的なんかな。俺は最近知った
53:デフォルトの名無しさん
22/05/28 23:15:48.77 EmXYdsgj0.net
あまりぐじゃぐじゃ書かないのがパイソニックだと思ってるけど共通ライブラリーとかだと書いてあったほうが使い方が分かりやすいとは思う
54:デフォルトの名無しさん (テテンテンテン MMf3-pUQD)
22/05/29 01:50:12 QKgJcbosM.net
oauthは初心者スレでは荷が重い?
55:デフォルトの名無しさん
22/05/29 12:04:25.91 TJxXQVo8M.net
質問です。
pip install virtualenv --user
を実行したら、
ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE.
というエラーメッセージが表示されました。
ネットで検索しますとwgetでダウンロードして、
ダウンロードしたファィル名を指定して
pip install [ファィル名]
で、インストールすれば良いと書いてあるのですが、
ハッシュがアンマッチになるのに、この対応で良いのでしょうか?
56:デフォルトの名無しさん
22/05/29 12:04:40.01 au8Lw3/Ma.net
FastAPI
OCID
57:デフォルトの名無しさん
22/05/29 12:06:27.51 XdbmYBSw0.net
>>54
oauthそのものの話ならそもそもスレチ
58:デフォルトの名無しさん (ワントンキン MMd3-ddm6)
22/05/29 12:51:21 TJxXQVo8M.net
>>55
補足です。
少なくとも、
この対応で良い場合があるみたいなのですが、
だとすると、何の為のハッシュチェックなのか?
問題ないのに何故エラーにするのか?
PIPのバグなのか?
思うのですが…
59:デフォルトの名無しさん (ワッチョイ c128-xJ1D)
22/05/29 13:15:32 I2Wd9ruS0.net
printで進捗率を表示したいと思っているのですが、
たとえば1%ごとに普通に表示すると、100行になってしまいます
tensorflowのモデルフィッティングなどでは同じ位置にlossやaccuracyが上書きされるような形で表示されますが、
そういう表示の仕方を普通の人が利用できるしくみはないでしょうか?
60:デフォルトの名無しさん
22/05/29 13:33:48 ZHIVO+Y+.net
DB操作の非同期処理で疑問が。
同期処理の場合
書き込みAの処理中に、読み込みAと(順に)読み込みBの処理が合った場合
書き込みAが終わったら、読み込みA→読み込みBを同期的に処理する
非同期処理の場合
書き込みAが処理中であっても、(書き込みAにより編集される前のデータから)
読み込みA、読み込みB(処理の早い順)で非同期的に処理する
これって書き込みAなどのCRUD処理が秒単位で重くないと非同期処理にするメリットってそんなに無いような気がするのですが違いますか?
あと同時接続何百何万人規模ではなく、個人1人の使用目的の場合とか
同期処理で良いと思うのですが、そもそも非同期・同期の設定がある時点で
同期処理にも何らかのメリットがあるのかな、と思いました
61:デフォルトの名無しさん
22/05/29 14:29:12.27 1MH1mBHPM.net
書き込み一回10msだったとしても100人同時接続なら1秒待たされる可能性があるけど、全ては要件仕様次第としか言えぬ
62:デフォルトの名無しさん
22/05/29 14:31:33.54 EXZXz4rv0.net
>>59
ググればいくらでも出てくるでしょ
ちょっとは調べようで
print(f'\r{i}', end='')
でもいいし
tqdmでもいいしcursesでもいいし
もしvscode使ってんなら出力じゃなくターミナルに表示しないと上手くいかないと思う
63:デフォルトの名無しさん
22/05/29 15:22:34.87 Syfd9jj8a.net
>>60
> 同期処理にも何らかのメリットがあるのかな、と思いました
ボンクラでも問題が起きにくいと言う多大なメリットがあるので君は当分同期処理使ってなさい
てか同期処理で問題ないならわざわざ非同期にする必要はない
64:デフォルトの名無しさん
22/05/29 15:29:24.32 t5iXjroi0.net
なんか嫌な奴湧いてんな
65:デフォルトの名無しさん
22/05/29 15:55:38.12 5IzeDC4a0.net
お勉強するところだから無知な奴がいるのは当然なのに、
そういうの相手にマウント取る悲しい自称上級者w
66:デフォルトの名無しさん
22/05/29 16:02:14.09 JO5+5GtDM.net
単芝
67:デフォルトの名無しさん
22/05/29 16:03:07.23 aE6JHMpI0.net
>>60
非同期処理はI/O待ちの間に他の処理をしたい場合に使う
同期処理はI/O待ちの間にプログラムがブロッキングしてもいい場合に使う
同期処理のほうがコードを書くのは簡単
68:デフォルトの名無しさん (ワッチョイ f101-uz2z)
22/05/29 17:42:48 NybAhe+H0.net
お前にはお似合いだと
69:デフォルトの名無しさん (テテンテンテン MMf3-pUQD)
22/05/29 17:54:02 3yFikEsSM.net
ごめん、実戦的すぎたね。
70:デフォルトの名無しさん
22/05/30 09:11:35.52 5oYvN3s60.net
VSCodeで作ったPythonプログラムって、exe化して配布または販売しても問題ないのかな?
マイクロソフトの許可いる?
71:デフォルトの名無しさん
22/05/30 10:09:33.27 qo78whZ80.net
どこの共産主義世界だよ
72:デフォルトの名無しさん
22/05/30 10:10:43.76 Ws+6yq+g0.net
販売自体は問題ないけど、exe化するとgplなコードもくっついてきたりするから、使用するライブラリ次第でコード公開も必要だよ
73:デフォルトの名無しさん (ブーイモ MM4b-BW6z)
22/05/30 10:33:46 lNh5h5A4M.net
exe化って中身のコード普通に見れるよね?
74:デフォルトの名無しさん
22/05/30 13:13:03.39 Ws+6yq+g0.net
法律家じゃないからそれでOKかは分からん。
GPL3だと差し替え手段も要求されるから難しいかもしれんね。dll付きのライブラリとかはないのかな?
75:デフォルトの名無しさん (ワッチョイ d112-M29c)
22/05/30 15:33:56 P+6uAT0v0.net
うるせー馬鹿
76:デフォルトの名無しさん
22/05/30 16:17:27.30 ys4YnaqgM.net
なんでTensorflowのPython3.10版がいつまで経っても出ないんですtか?
77:デフォルトの名無しさん
22/05/30 16:19:17.43 yxbyBGGF0.net
if 'aaa' in str or 'bbb' in str or 'ccc' in str:
をもう少しすっきり書けないものか
78:デフォルトの名無しさん
22/05/30 16:46:27.83 Ws+6yq+g0.net
any((ss in s) for ss in ('aaa', 'bbb', 'ccc'))
全然スッキリじゃないな…
79:デフォルトの名無しさん
22/05/30 17:08:37.30 Ws+6yq+g0.net
if re.search('aaa|bbb|ccc', s):とか
80:デフォルトの名無しさん
22/05/30 17:17:56.59 x2PH8vu3H.net
スレチかもしれんが業務用のexe作成とかってどうしてるんだろうな
81:デフォルトの名無しさん
22/05/30 17:29:00.47 yxbyBGGF0.net
endswithみたいに、str.contains(('aaa', 'bbb', 'ccc'))
みたいに書けるといいのに
82:デフォルトの名無しさん
22/05/30 18:14:17.88 4ToCs4sv0.net
if 'aaa' == str or 'bbb' == str or 'ccc' == str:
だとしても雑多だし関数化する
83:デフォルトの名無しさん
22/05/30 18:33:44.99 yxbyBGGF0.net
それはinで書ける
84:デフォルトの名無しさん
22/05/30 18:51:26.01 4ToCs4sv0.net
それはわかるよ
in相当のことを自前でせんとってこと
85:デフォルトの名無しさん
22/05/30 19:04:54.87 p2Xa6iEo0.net
#背景:歌詞データベースがGoogleに歌詞データを抜かれていると思い、英語の2種類のアポストロフイ(’‘)を駆使してモールス信号で歌詞内に
# REDHANDED(現行犯)とコーディングした珍事件。ちなみにgoogle は裁判で負けてるはず。
# URLリンク(japan.cnet.com)
#これを再現したい。
#モールス信号(REDHANDED)のトン、ツーを二つのアポストロフィで置換
morse = '.-..-.......--.-...-..'.replace(".", "’").replace("-", "‘")
#歌詞文字列(シナトラの「あなたはしっかり私のもの」を100回リピート)
lyrics = """
I've got you under my skin
I've got you deep in the heart of me
""" * 100
new_lyric = ""
#モールス信号のプレースホルダ
place = 0
for letter in lyrics:
if letter == "'":
letter = morse[place]
place += 1
if place >= len(morse) -1:
place = 0
new_lyric += letter
#もっとPythonぽくしたいですね。。。
86:デフォルトの名無しさん
22/05/30 19:08:06.27 dlCXa2NnM.net
意図としてはanyを使うのがいいんだろうけど
違う意味のinが似たような形で出てくるから異常に読みにくくなるよね
このケースは何を使うにしても関数化は必ずやる
87:デフォルトの名無しさん (ワッチョイ 49da-pgQP)
22/05/30 22:31:40 U5Ze+/Ia0.net
>>80
nuitka一択じゃろ
88:デフォルトの名無しさん
22/05/31 09:00:56.25 GrG3Jwc2H.net
>>87
こんなのあるんだ
おしえてくれてありがとう
89:デフォルトの名無しさん
22/05/31 10:29:06.88 aYJaA5wp0.net
>>85
place = (place + 1) % len(morse)
で後の if は不要
90:デフォルトの名無しさん
22/05/31 10:43:43.43 EHPnPCKa0.net
モールスなら文字と文字の区切りは要らんのだろうか
91:567
22/05/31 11:17:31.24 OPRRJe0Od.net
tempsum //= 10
これ //= なんなのか全然わからない
途中の
if l1: tempsum += l1.val; l1 = l1.next
の ; とか .val とかも全然わからん
こういうのググっても出てこないんだよなあ
ゼロから始めるLeetCode Day42「2. Add Two Numbers」
URLリンク(qiita.com)
92:デフォルトの名無しさん
22/05/31 11:39:57.90 EHPnPCKa0.net
/= とだいたい同じ
答えが整数になる割り算
93:デフォルトの名無しさん
22/05/31 11:52:52.65 SloIHam50.net
URLリンク(docs.python.org)
URLリンク(docs.python.org)
クイック検索不可だから他言語知らないとここまで読んでないとわからんのかーと思ったが
インタラクティブシェルで調べられるね
>>> help('//=')
94:デフォルトの名無しさん
22/05/31 13:47:33.38 0AmUKgF70.net
>>90
もちろん要る訳だが今回の趣旨は一見ばれないウォーターマークを入れることだから
そういうのは気にしなくても良いのでは
95:55
22/05/31 17:04:23.43 d/XuXT1YM.net
>>55
関連の質問です。
wget 「virtualenvダウンロード先URL」
を入力したら
-bash: wget: command not found
になりました。
それで
brew install wget
を実行したら、
途中で
「"javac"コマンドラインツール使用するには、JDKをインストールする必要があります。
このJava Developer KitのダウかロードWebサイトにアクセスするには、"詳しい情報…"をクリックしてください。」
というダイアローグメッセージが表示されました。
それで
[詳しい情報…]ボタンをクリックすると、
ブラウザに「URLリンク(get.adobe.com)」のホームページが表示され
Access Denied
You don't have permission to access "URLリンク(get.adobe.com) on this server.
と表示されました。
どうしたら良いのでしょうか?
最終的にやりたいことは、vartualenvのインストールです。
そのためにwgetが必要であれば、まずwgetをインストールしたいのですが…
OSはMacOS 10.12.6です。
96:デフォルトの名無しさん
22/05/31 17:26:20.02 SloIHam50.net
>>95
OSが古すぎていろいろ他にも困ること多いだろうから
自分で解決できないならOS更新した方がいい
アポもユーザコミュニティも基本最新の2世代前までしかサポートしない
97:デフォルトの名無しさん
22/05/31 17:34:21.44 4uNWVkcD0.net
>>89
勉強になりました、ありがとうございました
98:デフォルトの名無しさん
22/05/31 19:30:15.24 6U4qyTDdM.net
>>95
wgetはjava不要だよ
wgetが依存しているその他のライブラリに引きつられて余計なパッケージまで更新しようとしてるんじゃないかな
brew install openjdk
で解決するかも
99:95
22/06/01 11:49:52.13 xH2t/PYEM.net
>>96
>>98
レスありがとうございます。
brew install openjdk
をやってみましたら、
OSバージョンが古すぎるって怒られました(^^);;
OSをバージョンアップして再トライします。
100:デフォルトの名無しさん (スプッッ Sda3-uBVS)
22/06/01 14:30:22 /wnAbUvUd.net
>>85
from itertools import chain
#(略)
ar_lyrics = lyrics.split("'")
morse *= (len(ar_lyrics) + len(morse)) // len(morse)
new_lyric = ''.join(chain(*zip(ar_lyrics, morse)))
メモリ使用効率や速度等ちょっとマシなはず
101:デフォルトの名無しさん
22/06/01 15:09:03.38 M4Zk1qxga.net
>>85
p = 0
new_lyric = ctypes.create_unicode_buffer(lyrics)
for n in range(len(new_lyric)):
if new_lyric[n] == "'":
new_lyric[n] = morse[p]
p = (p + 1) % len(morse)
print(new_lyric.value)
102:デフォルトの名無しさん
22/06/01 17:49:58.45 ZNxcjxh30.net
>>100,101
itertoolsのchain,*アンパック、c関数ライブラリーも含めて大きな気付きになりました、ありがとうございます。
予め歌詞をアポストロフィでsplitして、必要な分だけ連結したモールスと
zipする方法は思い付きませんでした。
zipの要素数の長さを「短い方に合わせる」という特性も効果的に使えるのは特に、
勉強になりました。m(_ _)m
103:デフォルトの名無しさん
22/06/01 17:56:43.58 +trdaPAta.net
str とか bytes とかが immutable ?
hoge = 'abc'
hoge[1] = 'x' ← エラー
fuga = b'\x00\x01\x02'
fuga[1] = '\x11' ← エラー
これ回避する方法は原則的に無いのかな
ポインタでごにょごにょしたら怒られる?
104:デフォルトの名無しさん
22/06/01 18:24:42.49 ABgrvWo90.net
トリッキーにやると後で何したか判らなくなるので、自分が思う素直な実装が一番
1. アポストロフィの位置のインデックスを作る
2. コード順インデックス順にアポストロフィを置換する
基本方針はこれで、インデックスの作り方、置換の方法をpythonっぽくする
105:デフォルトの名無しさん
22/06/01 18:36:14.24 +trdaPAta.net
pythonで
1文字=4byteとか(str)
1文字=1byteとか(bytes)
を前提として良いのかなといつも不安になる
106:デフォルトの名無しさん
22/06/01 18:50:52.98 yMcvFbQD0.net
bytearrayとしてなら任意に操作してもいいよね
でないとバイナリな通信やファイルフォーマット扱えないし
strとの変換はしないか失敗する前提にするだけ
107:デフォルトの名無しさん
22/06/01 18:53:53.06 7vDzwUWw0.net
>>103
普通の文字列なら
一回配列に変換してから、指定箇所の文字を変えて再度結合すれば回避できる
(少し回りくどいけど)
URLリンク(ideone.com)
108:デフォルトの名無しさん
22/06/01 19:44:37.04 ABgrvWo90.net
'abcd'.encode() -> b'abcd'
b'abcd'.decode() -> 'abcd'
strは内部形式でバイト数とかは考えない
bytesという具体的な型にエンコードして操作する
終わったらデコードしてstrに戻す
109:デフォルトの名無しさん
22/06/01 19:45:30.64 +trdaPAta.net
ctypes使うときに比べてパフォーマンス落ちる気がするんですよね
ctypesが速いという保証もなさそうだけど
110:デフォルトの名無しさん
22/06/01 19:46:51.82 +trdaPAta.net
>>108
strの内部表現はUCS4では?
111:デフォルトの名無しさん
22/06/01 20:00:10.36 ABgrvWo90.net
それは処理系に依存するのでは
112:デフォルトの名無しさん
22/06/01 21:16:39.21 4Ni34VMTa.net
UCS-2 は衰退しました
113:デフォルトの名無しさん
22/06/01 21:54:57.69 ID
114::pQ1QbGOaM.net
115:デフォルトの名無しさん
22/06/01 22:14:55.33 7/TQKK/g0.net
KPS 9566を使いたまえ
116:デフォルトの名無しさん
22/06/02 12:36:08.09 MPFVtYTLa.net
勉強になりました
URLリンク(tech.mntsq.co.jp)
ほんとうにありがとうございました
117:デフォルトの名無しさん
22/06/02 12:39:25.70 MPFVtYTLa.net
こちらも参考になりました
URLリンク(www.youtube.com)
ほんとうにありがとうございました
118:567
22/06/02 13:28:22.47 33kfmotx0.net
連結リストという概念を初めて知ったんだけど
pythonには標準でくみこまれてないんだよね?
119:デフォルトの名無しさん (ワッチョイ 2bbb-g8Zs)
22/06/02 14:05:46 3ZZlbCpS0.net
ないね
標準化しても汎用性が低いし、仮に挿入削除が多くても、実環境で性能測定したらふつうの配列のほうが早かったってのはあるあるなので、用意されなかったのかも
120:デフォルトの名無しさん
22/06/02 16:13:09.28 FBnHLBnp0.net
file1.py file2.py
とあり、file3.pyで、
import file1
もしくは
import file2
とします
1と2を切り替えるのは3のファイルの中身を書き換えることになりますが、
これをfile4.pyで行い、file3.pyでは
import file4
としたいです
file4.pyに
import file1
と書くだけではfile3.pyにfile1.pyが読み込まれません
どのように記述したらいいでしょうか
121:デフォルトの名無しさん
22/06/02 16:40:24.26 2bJMdcf90.net
>>119
それぞれに名前空間があってimportでどうなるか考える
URLリンク(docs.python.org)
# file4
from file1 import *
ただfile3からはfile4.xxxでアクセスすることになるから
import file1と同一ではない
122:デフォルトの名無しさん
22/06/02 17:19:29.03 svdPFYkt.net
>>119
__init__.pyとか使ってやった方が管理しやすそうだけど
文字通りやるならこうかなたぶん
【file1.py】
var="File 1"
【file2.py】
var="File 2"
【file3.py】
from file4 import fn
print(fn.var)
【file4.py】
import file1 as fn
>> import file3
#-> "File 1"
URLリンク(colab.research.google.com)
123:567 (スップ Sdf3-jzNG)
22/06/02 18:03:37 aVRHc6YOd.net
>>118
調べたらこういうのがあったんだが
URLリンク(towardsdatascience.com)
ページ�
124:フ一番最後にコードがまとめてあるけど 66行目の return self って、流れ見ると、return self.tail が正しい気がするんだがどうだろう? 初心者だから正直良くわからん
125:デフォルトの名無しさん
22/06/02 18:33:52.64 3ZZlbCpS0.net
ミスだと思う。
コメント欄があるみたいだから教えてあげたら
126:ハノン
22/06/02 18:35:52.69 aZCO8NlO0.net
>>118
>仮に挿入削除が多くても、実環境で性能測定したらふつうの配列のほうが早かった
そりゃ、配列の大きさが 1 万程度の比較的小規模な場合なんでしょ?そんな性能比較なんて意味ないですよね…
127:デフォルトの名無しさん
22/06/02 20:39:38.41 3ZZlbCpS0.net
意味ないかどうかは、一万未満で早くしたいのか、100万件以上のときだけ早くしたいのか、開発者次第だから分からんね
128:デフォルトの名無しさん
22/06/02 20:50:37.67 qTxX7xKb0.net
こんな無関係なスレでハノン氏を見かけるとはw
129:デフォルトの名無しさん
22/06/03 04:18:19.22 liVAJzUK0.net
私の環境ではtensorflow.python.keras.layersにBatchNormalizationが入っていないのですが、どうやったら入れられますか?
130:デフォルトの名無しさん
22/06/03 18:05:45.59 jly4Bs+DH.net
WARNING *** OLE2 inconsistency: SSCS size is 0 but SSAT size is non-zero
これ意味わかりますか?
131:デフォルトの名無しさん
22/06/03 19:40:59.19 md39NJ8LM.net
あるシーケンシャルデータが
0
1000
1000
1000
10
1000
1000
5
4
1000
1000
1000
って配列があったときに10以下を切れ目にグルーピングして二次元配列作りたいんだけど、ワンライナーで書く方法ある?
132:デフォルトの名無しさん
22/06/03 20:27:17.91 mmKum4Qj0.net
>>129
URLリンク(more-itertools.readthedocs.io)
133:デフォルトの名無しさん
22/06/03 20:31:37.82 SNgr59AR0.net
何故かMemoryErrorになる
もう一度やるとならなかったりする
メモリなんか有り余ってるのに
134:デフォルトの名無しさん
22/06/03 21:26:21.75 A/r7iGb40.net
#背景:南北戦争の時代に使われていた暗号円盤(Cypher Disk)を再現したい。
# 下の画像のように外部の車輪を回して中身のアルファベットを指定する可変的な暗号機械にしたい。
# URLリンク(ja.wikipedia.org)
import string, random
#内側の車輪を大文字のアルファベットで生成
inner_alph = list(string.ascii_uppercase)
#画像の通り、文字列tionとingの入力の手間を省くキー(他のキーと長さが異なるので注意したい)。スペース追加。
inner_alph += ["TION","ING"," "]
#外部の数値車輪の定義
outer_num = []
while len(outer_num) <= len(inner_alph):
#外部の車輪は紙に書きやすい、1と8のランダムな羅列。桁数は1から四桁で生成。
number = "".join((random.sample(["1","8"]*5, random.choice(range(1,5)))))
if number not in outer_num:
outer_num.append(number)
# 次に車輪を回転させて、可変性を持たせたい。外部の車輪の数字をランダムに選ぶ(昔の黒電話のダイヤルのイメージ)。
index_letter = random.choice(outer_num)
#外部の車輪を回転。時計の針
135:がずれるように、インデックス文字以降が後半にappendされる形にしたい。 #イメージ:http://inventwithpython.com/cipherwheel/ shiftnum = outer_num.index(index_letter) outer_num = outer_num[shiftnum:] + outer_num[0:shiftnum] #極秘暗号表と早見表を保存 crypt_dict = (dict(zip(inner_alph,outer_num))) crypt_cheatsheet = (dict(zip(outer_num,inner_alph))) #print(crypt_dict) ##メッセージは以下の通り message = "ENEMY INCOMING FROM NORTH" cryptedmessage = [] place = 0
136:デフォルトの名無しさん
22/06/03 21:26:36.82 A/r7iGb40.net
#暗号生成開始
while place <= len(message)-1:
#tionとingに対応するため、文字列を4文字先読み
future_string = message[place:place+5]
#あまりスマートではない暗号化処理と先送り処理
if future_string.startswith(("TION")):
cryptedmessage.append(crypt_dict["TION"])
place += len("TION")
elif future_string.startswith(("ING")):
cryptedmessage.append(crypt_dict["ING"])
place += len("ING")
#一文字づつ暗号化
else:
cryptedmessage.append(crypt_dict[message[place]])
place += 1
#暗号と早見表を送付
print(cryptedmessage)
for crypted_num in cryptedmessage:
print(crypted_num + ":"+ crypt_cheatsheet[crypted_num])
137:デフォルトの名無しさん
22/06/04 08:21:30.69 XaXAMuD50.net
>>128
エクセルファイル壊したなw
138:デフォルトの名無しさん
22/06/04 10:39:04.46 vvbHqYcO0.net
>>132
URLリンク(upload.wikimedia.org)
内側の円盤に 7 とか & とかあるけど何なん?
139:デフォルトの名無しさん
22/06/04 12:23:28.16 lbS14JzhH.net
>>134
壊れてるんですか?
壊したつもりないのにorz
140:デフォルトの名無しさん
22/06/04 13:57:47.67 fS6UzCwCH.net
tensorflowでload_modelのあとの.compileって要りますか?
最初にモデル構築したときにコンパイルしてたら要りませんか?
141:デフォルトの名無しさん
22/06/04 14:11:05.42 wbzuouUH0.net
sys.argv[1] があればそれを返してなければ別に決めたdefaultの値を返す
というのをtryを使わずにシンプルに書くには?
142:デフォルトの名無しさん
22/06/04 14:18:13.51 DNUj2Sn5M.net
sys.argv[1] if len(sys.argv) > 1 else あ
143:デフォルトの名無しさん
22/06/04 14:29:26.90 wbzuouUH0.net
if条件を後付けできたっけ? と一瞬見えたけどpythonの三項演算子か
文章として読めるくらい自然
誰だ最初に cond ? true val : false val の書き順を考えた奴は
144:デフォルトの名無しさん
22/06/04 17:13:13.78 vvbHqYcO0.net
>>138
(sys.argv.__getitem__(slice(1, 2, None))+['default value'])[0]
145:デフォルトの名無しさん
22/06/04 18:00:53.05 okTxRfSRH.net
OpenAI GymのAcrobotの最短ゴールステップ数はいくつですか?
146:デフォルトの名無しさん
22/06/04 19:42:17.06 XaXAMuD50.net
>>136
マジレスすると今の内にデーター救出してファイル作り直した方が良いぞ。
zip+xmlだから手で直せない事も無いが、仕様書は
英語で6000ページ程あって死ねる。
147:デフォルトの名無しさん
22/06/04 19:45:28.28 nP9ATT2W0.net
vscodeで書いてる人いる?
関数名単位で折り畳んでるコードの途中を書き直してると
なにかのタイミングでそこ以下の全折り畳みが勝手に開いちゃうんだけど
これ設定でどうにかならないのかな
たぶん書き直し中の意味なさない文字列にpylanceとかが反応してるんじゃないかと思うんだけど…
148:デフォルトの名無しさん (ワッチョイ ea3b-udyG)
22/06/04 19:56:47 wbzuouUH0.net
excelのバグでオブジェクト移動すると壊れることがあった
zipにして解凍して手動で修復しないと戻せない
149:デフォルトの名無しさん
22/06/04 22:46:33.32 F4p6GD1l0.net
seleniumでログイン維持した状態で色々試してたら複数の同じidでのログインが確認されましたって
サイト側で出て、終了はquitで終了させてるんですけど、quitだとちゃんと終了出来ないんですか?
またちゃんと終了させるにはどうすればいいのでしょうか?
150:デフォルトの名無しさん
22/06/04 23:00:29.30 c6VkDSm3M.net
ログアウトボタンを押せばいいんじゃね?
151:デフォルトの名無しさん
22/06/04 23:16:53.41 wbzuouUH0.net
closeしてないとか
152:デフォルトの名無しさん
22/06/05 13:09:56.43 u0j22vIZa.net
>>136
>>143
HDD(SSD)が壊れ始めてるかもなω
153:デフォルトの名無しさん
22/06/05 13:40:12.13 cfenzNII0.net
win10のcmdでエスケープシーケンスで色を付けたら、
黄色がどう見ても黄土色なので、代わりにESC[38;5;226mを使おうとすると、
うまく行くソフトと無視されるソフトがある
条件は何も変わらない筈なのに何が邪魔してるんだろう
154:デフォルトの名無しさん
22/06/05 13:45:41.54 u0j22vIZa.net
cmdの色付けはもうescの時代じゃないぞ
api使え
155:デフォルトの名無しさん
22/06/05 14:10:42.03 cfenzNII0.net
termcolorだと拡張に対応してないのでやっぱりyellowは黄土色なんだよな
やってることは同じ
156:デフォルトの名無しさん
22/06/05 15:45:10.23 udiiYXiVa.net
REG ADD HKCU\CONSOLE /f /v VirtualTerminalLevel /t REG_DWORD /d 1
または
URLリンク(boukenki.info)
157:デフォルトの名無しさん
22/06/05 16:06:28.25 PQtNePYx0.net
>>131
32bit版使ってないか確認
158:デフォルトの名無しさん
22/06/06 06:00:56.68 uEmonKGk0.net
lambda式とか自分で書いてて頭の中から出てくる気がしない
例えば↓とか
リスト ln と数 n を受け取って
lnからn より大きい個数を返す関数number_of_big_numbers()
for文やwhile文を用いずに、filter を用いて定義してください
def number_of_big_numbers(ln, n):
return sum(map(lambda x: 1, filter(lambda x: x>n, ln)))
やってることはわかるけどfor文、while文書かないって制約ないとこんなの作らないよね?
159:デフォルトの名無しさん
22/06/06 07:56:51.35 oHO1A3NO0.net
Pythonの場合ほとんど内包表記で書いた方が短くなるからmap,filterを使うことは少ないな。
でも、慣れたらわかるよ。
len([v for v in ln if v > n])かなあその例だったら。
160:デフォルトの名無しさん (ワッチョイ ea3b-udyG)
22/06/06 08:12:53 vU8u/TBb0.net
個数なんだからlenだな
ネストしないなら内包表記でもフィルターでも大差ない
むしろフィルターの方が直感的
161:デフォルトの名無しさん
22/06/06 09:46:59.38 MeEZ09lYd.net
>>> import numpy as np
>>> i = np.array([3,5,1,2,6,9,8,7,0,4])
>>> i[i>3]
array([5, 6, 9, 8, 7, 4])
>>> len(i[i>3])
6
162:デフォルトの名無しさん
22/06/06 09:50:54.37 Ug3DHjCKa.net
sum(i>3) でいけるな
163:デフォルトの名無しさん
22/06/06 10:02:06.45 WnvkflPwM.net
>>157
そうかなあ?慣れだと思うけど
メソッドチェーンでfilter,map書ければわかりやすいけど Pythonの記法だとどっちもどっちな気がする。
自分は複雑なmap/filterはむしろ内包表記に変形して理解するわw
164:デフォルトの名無しさん
22/06/06 10:39:40.85 vU8u/TBb0.net
filter(lambda x: x>n, ln)
[x for x in ln if x>n]
内包表記だとlnが埋没してしまう
式1 for 式2 in 式3 if 式4
という構文が複雑
式1 if 式2 else 式3 for 式4 in 式5
だともっと複雑
165:デフォルトの名無しさん
22/06/06 11:18:23.25 vU8u/TBb0.net
処理対象のリストが中間に来ると、ネストした時に
[ ... in list ...]
[ ... in [ ... in list ...] ...]
[ ... in [ ... in [ ... in list ...] ...] ...]
こんな増え方をするので一気に読めなくなる
166:デフォルトの名無しさん
22/06/06 11:27:14.55 UZF8Zcz90.net
本来はそのためのインデントだったんだが・・・
167:デフォルトの名無しさん
22/06/06 11:30:23.10 vU8u/TBb0.net
[x for x if x>n in ln]
という語順でif節は省略可能、みたいな文法だったら、
ネストしても文章になってた筈
168:デフォルトの名無しさん
22/06/06 11:50:14.01 Ug3DHjCKa.net
通常 for のネストは内側優先だが
内包 for のネストは外側優先なのか
169:デフォルトの名無しさん
22/06/06 12:10:49.41 GZdIbtar6.net
map/filterでも、あんまりややこしいのは1つの式でなく適度に分割した方がいいと思うけどね。
ifが無くても内包表記のネストが3段とかになるとそもそも相当読みづらい
内包表記でもジェネレーターの内包表記にしておけば余計なリストを作らずに済むし
JSとかRubyのln.filter(関数).map(関数).reduce(関数)のスタイルは圧倒的に読みやすいと思うけどね。
170:デフォルトの名無しさん
22/06/06 12:10:57.50 vU8u/TBb0.net
内包表記は[x for x in ...]の先頭のxがxじゃない時が本来の使い方で、
x for xでifを付けるなら、それはやっぱりフィルターだと思う
フィルターならフィルターだと書いた方がlambdaがあったとしても読みやすい
癌はmapで、これはどう書いても内包表記の方が優れてる
単純なmapでもそうだし条件が付くならなおさら
171:784
22/06/06 12:26:45.75 9Upi+T9Ya.net
内包表記って必要なの?
処理が少しでも早くなるならいいけど、
見辛い、理解しづらいってなんの得になるの?
172:デフォルトの名無しさん
22/06/06 12:29:04.88 v7exk6pA0.net
複雑な内包表記を書くときは分割するかforループにしろ
173:デフォルトの名無しさん
22/06/06 12:32:23.41 GbLd0KfZ0.net
内包表記でもインデントできるので、可読性をあげたい時は使ってみてください
174:デフォルトの名無しさん
22/06/06 12:36:05.67 vU8u/TBb0.net
インデントまで必要な時点でどうやっても読みにくい
175:デフォルトの名無しさん
22/06/06 12:41:55.19 +tLOHMcU0.net
mapがうんちなのは本当になんとかしてほしい
デフォルトエンコーディングをutf8にするとかどうでもいいから
176:デフォルトの名無しさん
22/06/06 12:50:56.61 m98Jb+yzH.net
map(int, float_no_list)みたいなときしか使わないな
この場合は、
[*map(int, float_no_list)]のほうが、
[int(v) for v in float_no_list]のより短いから使うだけ
打つ量を減らしたいだけで読みやすさで選んでないな
Jupyter上で試行錯誤が多いから。あとでちゃんとしたコードにするときに読みやすさは考える
177:デフォルトの名無しさん
22/06/06 13:00:44.68 m98Jb+yzH.net
>>155
ちなみに元の例に戻ると、filterを使えと書いてあるのだから、
len(filter(lambda x: x>n, ln))
かね。filter後にわざわざmapして1にしてsumする意味が感じられない。
mapで1にするなら、sum(map(lambda x: 1 if x > n else 0, ln))かな。
こっちは応用が効く場合がある(else -1にすればnより大きい個数とn以下の個数の差が求められるとか)
他にはsum(map(lambda x: int(x > n), ln))とかもあるけど技巧的だね
178:567
22/06/06 13:06:38.95 oBW+89oQd.net
>>174
>>174
len(filter(lambda x: x>n, ln))
だと
TypeError: object of type 'filter' has no len()
になっちゃう
179:デフォルトの名無しさん
22/06/06 13:19:09.72 vU8u/TBb0.net
ジェネレータにlenが無いのは手抜きではなくて本質的な話だよな
180:デフォルトの名無しさん
22/06/06 14:07:03.38 vZsNJksDM.net
len(list(filter(lambda x: x>n, ln)))
これでいけると思う
何かフィルターした後のリストの長さってのがぱっと見でわかるから個人的には内包表記よりこっちのがいいな
自分が内包表記が苦手なのもあるけど
181:デフォルトの名無しさん
22/06/06 14:19:50.83 oLiAgBI4d.net
def number_of_big_number(ln, n):
f = filter(lambda x: x>n, ln)
m = map(lambda x: 1, f)
return sum(m)
よく考えたらこれでよくね?
182:デフォルトの名無しさん
22/06/06 14:46:26.36 sRSbc3ijM.net
リストはミュータブルなのにa, b = [1, 2, 3]; b = []; len(a);len(b)で3, 0となるのは何故なのさ?
183:デフォルトの名無しさん
22/06/06 14:58:54.17 v7exk6pA0.net
a = b = [1, 2, 3]; b = []; print(a, b)
a = b = [1, 2, 3]; b[:] = []; print(a, b)
184:デフォルトの名無しさん
22/06/06 15:00:14.40 wz8sfihq0.net
map(lambda x: 1,...はメモリ上へのlist化をさける苦肉の策だろうけど
前提条件なんか無視してsum(1 for x in ln if x > n)したほうが良さそう
>>179
なぜ両方空にならないのかという意味であれば、同じ参照でも変数は個別に存在し
単純代入は新しい参照先の割り当てに過ぎず、元の参照先を編集してる訳ではない
185:デフォルトの名無しさん
22/06/06 15:03:53.80 8NtqgJJW.net
a=[1,2,3]
b=a
print(a,b)
b=[]
print(a,b)
b=a
b.append(4)
print(a,b)
b.pop()
print(a,b)
>>[1, 2, 3] [1, 2, 3]
>>[1, 2, 3] []
>>[1, 2, 3, 4] [1, 2, 3, 4]
>>[1, 2, 3] [1, 2, 3]
186:デフォルトの名無しさん
22/06/06 15:04:51.12 Ug3DHjCKa.net
sum(map(lambda x: x > n, In))
187:デフォルトの名無しさん
22/06/06 15:22:37.41 wz8sfihq0.net
なるほどPythonic、ブールは整数の派生型だったな。sum(map(n.__lt__, ln))で済む事もあるか
188:デフォルトの名無しさん
22/06/06 15:33:43.92 sRSbc3ijM.net
ああ分かったよ参照地の値渡しってこんなんだったな
参照渡しとごっちゃになってた
ややこしいなーおい
189:デフォルトの名無しさん
22/06/06 16:39:39.60 m98Jb+yzH.net
sumレベルだと、reduceする意味ないよな、長くなるだけで
functools.reduce(lambda a, x: a + int(x > n), ln) とは書けるが
もっと特殊な集計をしたいのならreduceは有り得そうな気がするが
190:デフォルトの名無しさん
22/06/06 16:43:09.43 m98Jb+yzH.net
sum(map(lambda x: x > n, In))
は、
sum(x > n for x in ln)
にもできるね。このforはfor「文」ではないしね
191:デフォルトの名無しさん (ワッチョイ 6d01-n+i2)
22/06/06 21:04:54 OVrZnyn60.net
敢えてリスト内包で書いてみる
#ABCDEFGHIJKLMNOPQRSTUVWXYZ
#HOGEFIJKLMNPQRSTUVWXYZABCD
#上みたいにキーワードHOGEをもとにアルファベットを置換する暗号を作りたい
#まず暗号表の一番最初にHOGEと記載し、残りはHOGEの最後のEから続く形で
#FGHIとアルファベット通りに暗号表を埋め、Zに到達したらアルファベットの
#最初から埋める(ABCD...)。重複に注意したい。
import string
alphabets = list(string.ascii_uppercase)
key_string = list("HOGE")
cypher = []
cypher = key_string + [i for i
in alphabets
#リスト内包でキーワードの最後の文字Eの後にあり、
if alphabets.index(i) > alphabets.index(key_string[-1])
#かつキーワードに含まれていない文字のリストを作成
and i not in key_string]
#残りのアルファベットで後半を埋める
cypher += [i for i in alphabets if i not in cypher]
改行しても読みにくいですね。。。
192:デフォルトの名無しさん
22/06/06 21:41:41.07 oHO1A3NO0.net
itertools.repeatとか使ったら1行の内包表記で書ける気がするけどな。
193:デフォルトの名無しさん
22/06/06 21:56:47.75 oHO1A3NO0.net
key_stringの重複排除も無理やりOrderedDictで実現しといた
import string
import itertools
from collections import OrderedDict
key_string = [*OrderedDict([(c, None) for c in 'HOGE']).keys()]
([*key_string] + [c2 for c2 in itertools.dropwhile(lambda c: c <= key_string[-1], string.ascii_uppercase * 2) if c2 not in key_string])[:26]
194:デフォルトの名無しさん
22/06/06 21:57:12.33 oHO1A3NO0.net
すまん最後の行はcypher = にしといてくれ
195:デフォルトの名無しさん
22/06/06 21:57:34.54 v7exk6pA0.net
i = alphabets.index(key_string[-1])
alphabets = alphabets[i:] + alphabets[:i]
cypher = key_string + [c for c in alphabets if c not in key_string]
196:デフォルトの名無しさん
22/06/06 22:33:35.11 OVrZnyn60.net
>>192
すごいスマートです
どれも勉強になりますm(_ _)m
197:デフォルトの名無しさん
22/06/06 22:35:12.91 AnrgIbHNM.net
key_string = ‘HOGE’
alphabets = ‘’.join(reversed(ascii_uppercase.split(key_string[-1])))
cypher = key_string + ‘’.join(x for x in alphabets if x not in key_string)
ネストした内包表記ほどじゃないけど
メソッドチェーンで書けないからかなり読みにくい
実際作るなら各行を関数化して関数名で意図が伝わるようにする
198:デフォルトの名無しさん
22/06/06 22:40:48.17 AnrgIbHNM.net
>>192のindexとsliceで入れ替えるほうがPythonっぽいかも
splitしてからreverseしてみたいに考えるのは他の言語の影響を強く受けてる
199:デフォルトの名無しさん
22/06/07 17:29:22.71 TSpMo2rsd.net
pandasってなぜパンダなの?
200:デフォルトの名無しさん
22/06/07 17:38:59.82 MOJeClMf0.net
Pediatric Autoimmune Neuropsychiatric Disorders Associated with Streptococcal Infections
201:デフォルトの名無しさん
22/06/07 17:53:38.32 MOJeClMf0.net
UnRAR.exe でrarの中身のリストを取ってくる時、sjisに無い文字が?になってしまう
7za.exe はutf-8で出力するモードがあって問題は起きないけど、UnRARはsjis固定ぽい
詰んでる?
202:デフォルトの名無しさん
22/06/07 20:44:13.38 MOJeClMf0.net
よく判らんのが、コンソールに表示させるだけなら正しく表示される
ファイルにリダイレクトさせると化けてるというか?に置き換えられてる
恐らくそれと同じ理由で、subprocess.PIPEもおかしくなる
203:デフォルトの名無しさん
22/06/07 21:02:33.25 MOJeClMf0.net
7zaではなく7zにすればrarも扱えるので解決
204:デフォルトの名無しさん
22/06/08 12:21:03.28 7ub2o1NQ0.net
for
try:
処理
except:
continue
finally:
後処理
みたいに書くと、finallyを無視してcontinueしてしまうのでは?と思ったけど
そんなことは無かった
205:デフォルトの名無しさん
22/06/08 12:46:08.13 vcMlxkVMd.net
普通そんな書き方そもそもしない
206:デフォルトの名無しさん
22/06/08 12:51:55.05 cdI+dEzz6.net
変なとこに飛ばないためのfinally なので
207:デフォルトの名無しさん
22/06/08 17:17:05.18 7ub2o1NQ0.net
文字列のリストがあって、先頭が#で始まっていない最初のものを取り出す
ループを使わずに書くには?
208:デフォルトの名無しさん
22/06/08 17:20:35.02 E4mWgpqm0.net
そんなのループでいいけど
next(s for s in L if not s.startswith('#'))
209:デフォルトの名無しさん
22/06/08 17:21:15.32 AiIZO1YE0.net
>>204
[w for w in list if not w.startswith(“#”)]
210:デフォルトの名無しさん
22/06/08 17:22:19.41 AiIZO1YE0.net
あ、その[1]か、最初だから
211:デフォルトの名無しさん
22/06/08 17:22:54.21 AiIZO1YE0.net
ごめん0だった
212:デフォルトの名無しさん
22/06/08 17:30:28.69 7ub2o1NQ0.net
next()はStopIterationが怖い
213:デフォルトの名無しさん
22/06/08 17:31:33.09 E4mWgpqm0.net
第2引数
214:デフォルトの名無しさん
22/06/08 17:39:20.66 7ub2o1NQ0.net
該当するものが無かった場合、デフォルトを設定しておいて、もしデフォルトだったら、とするか、
普通にエラーにしてtryで捕まえるのとどっちがいいだろう
エラーが出ないようにいろいろ配慮して書くより、何も考えずにエラーにする方が
python的な気がしてきた
215:デフォルトの名無しさん
22/06/08 17:48:28.41 xigHBt180.net
そんなもんpythonでなくとも一緒
216:デフォルトの名無しさん
22/06/08 18:45:29.37 AiIZO1YE0.net
scrapyとかboto3の話もしたいなぁ
217:デフォルトの名無しさん
22/06/08 22:58:19.98 9QcK/PFh0.net
例外処理は言語関係なく大事なので勉強してください
218:デフォルトの名無しさん
22/06/08 23:11:29.92 7ub2o1NQ0.net
例外処理と言っちゃうと違うんだよな
予期せぬエラーではなく、正常系の処理でも積極的に例外を使う
関数の戻り値を見て判断、みたいなことを避ける
219:デフォルトの名無しさん
22/06/09 00:31:03.46 wTBvvN970.net
>>198
7-zipのGUI 版の7z.exe については、以下に書いた。
773 が漏れ
【.cmd】 バッチファイルスクリプト %14 【.bat】
スレリンク(tech板:771番)-775
スレリンク(tech板:836番)
ただ本来、7z.exeはコマンド用じゃなく、画面操作用だから、
必ず、解凍先フォルダは空の状態で始めて下さい!
そこにファイルがあると、同じファイル名の場合に、
上書きしますかとか聞かれて、コマンドが止まる
だから本当は、7-zipのコマンド用実行ファイルを使った方がよいかも
220:デフォルトの名無しさん (ワッチョイ ea3b-udyG)
22/06/09 01:13:02 vb6k1Pem0.net
7zaに関しては困ってなくて、7zaと同様のことがunrarでできなくて困ってた
7zaではなく7zを使えばそっちはrarにも対応してるのでunrarは不要になる
7-Zip Extraコンソール板の最新のものでもrarに対応してないのが問題
理由がよく判らない
221:デフォルトの名無しさん
22/06/09 08:46:42.58 vb6k1Pem0.net
class TestClass:
pass
a = TestClass()
a.member = 1
print(a.member)
これは特にエラーもなく動く
memberはどこに記憶されとるの?
222:デフォルトの名無しさん
22/06/09 09:58:40.07 wTBvvN970.net
Ruby, JavaScript で言う、特異オブジェクト
そのインスタンスにだけ、外からmember が作られるが、
別のインスタンスには、memberは存在しない。
クラス内で作られたものではないから
a = TestClass( )
b = TestClass( )
a.member = 1
print( a.member ) #=> 1
print( b.member ) # エラー。memberは存在しない
223:デフォルトの名無しさん
22/06/09 10:15:30.67 vb6k1Pem0.net
class定義というのは、形をきっちり決めるものではなくて、
その中で変数を作ればそれはあるし作らなければ無いというだけの話か
__init__() で作ってもいいし、生成後に作ってもいい
このクラスのメンバは以下の通りです、みたいな定義がどこにも無いから変だと思った
224:デフォルトの名無しさん
22/06/09 11:05:11.17 1tSt6fQl0.net
>>215
パターンマッチできたし値とエラー情報をタプルで戻すのもあり
ケースによるけど
225:デフォルトの名無しさん
22/06/09 14:48:29.51 KIKA+I2C0.net
50レスぐらい前で話題になってた、メソッドチェーン風のmap/filterは、toolzのpipeを使えばできそう。
>>> from toolz.functoolz import pipe
>>> import math
>>> pipe(range(100), lambda it: filter(lambda v: int(math.sqrt(v)) ** 2 == v, it), lambda it: map(lambda v: v * 100, it), list)
[0, 100, 400, 900, 1600, 2500, 3600, 4900, 6400, 8100]
これだとちょっとややこしいから、filterやmapをラップして、高階関数化しておく。
>>> def filter2(func):
>>> return lambda it: filter(func, it)
>>> def map2(func):
>>> return lambda it: map(func, it)
>>> pipe(range(100), filter2(lambda v: int(math.sqrt(v)) ** 2 == v), map2(lambda v: v * 100), list)
[0, 100, 400, 900, 1600, 2500, 3600, 4900, 6400, 8100]
んで、このfilter2, map2と同じものはtoolz.curriedの中にあるfilterやmapで用意されているっぽい。
226:デフォルトの名無しさん
22/06/09 16:59:32.72 oBeyd70Z0.net
リンク貼れないんですが、
AlphaGoを模したオセロAIを作る(2): RLポリシーネットワーク
というのを検索して出てくる記事で、
学習できないという結果があります
なぜできないか、どう改善すればいいかわかりますか?
227:デフォルトの名無しさん
22/06/09 17:05:02.75 1tSt6fQl0.net
スレが適当でないし記事への質問なら投稿者に聞けば良いのでは?
228:デフォルトの名無しさん
22/06/09 17:24:01.80 vb6k1Pem0.net
オセロなんてある程度打ったら残りは完全読みだから、
計算力的に完全読みできるようになるまでの形勢判断になるんだろうな
229:デフォルトの名無しさん
22/06/09 17:36:53.88 LsKlj9I4M.net
>>222
toolzのpipeじゃなくてsspipeかpip install pipeで使えるpipeパッケージ使ってみて
特に後者がオススメ
230:デフォルトの名無しさん
22/06/09 17:39:01.04 2fubDR6qH.net
>>224
検索してみたけど、投稿者がお手上げしてるぞw
231:デフォルトの名無しさん
22/06/09 18:41:58.73 +yYG9Gwqr.net
alphaGOはもう古い手法だし作り方はそのへんに溢れてるんじゃないの?
昔論文読んでオセロで実装したことあるけど普通に動いたぞ
RLポリシーがおかしいのか?
232:デフォルトの名無しさん
22/06/09 19:11:31.27 pDi0khGKH.net
デュアルネットワークのモンテカルロさんはセルフプレイの考慮時間が長くてイライラする
233:デフォルトの名無しさん
22/06/10 16:07:50.60 OtI7joU/H.net
>>226
URLリンク(pypi.org)
これか。良さげだね。内包表記に限界を感じたら使ってみるよ。
有益な情報をありがとう!
234:デフォルトの名無しさん
22/06/10 21:55:12.18 Shrpy6o40.net
pythonってインスタンス作るときにnewキーワードがないから
クラスと関数の見分けが付かなさそうなんだけどどうしてんの?
235:デフォルトの名無しさん (ワッチョイ 2d14-ri9p)
22/06/10 22:11:39 /zky+6vC0.net
そんなに見分ける必要ある?名前を大文字で始めるみたいな習慣はあるけど
236:デフォルトの名無しさん (ワッチョイ 6d01-5VDJ)
22/06/10 23:16:33 6DkeE7zK0.net
vscodeが教えてくれる
237:デフォルトの名無しさん (ワッチョイ 6d32-Q5o7)
22/06/10 23:22:52 KSM5RFUb0.net
お袋より優しいvscode
238:デフォルトの名無しさん (ワッチョイ 9d97-GLPP)
22/06/10 23:45:51 7XjGZ8fL0.net
コンストラクタ(一種の関数だ)と普通の関数を区別する必要ある?
普通の関数の中でコンストラクタ呼んでて戻り値がクラスのインスタンスだったら実質似たようなものではないか。ファクトリーパターン。
大事なのはコンストラクタと関数それぞれのドキュメントと、type hintじゃない?
239:デフォルトの名無しさん
22/06/11 00:04:48.58 rnNGlre+0.net
戻り値が返るような自然さで生成されるクラスオブジェクトならいいけど、
なんかとりあえず空のものをnewして、それをその後ずっと使い倒す、
みたいな流儀がオブジェクト指向にあって、それだとどれがnewか知りたい
240:デフォルトの名無しさん
22/06/11 00:09:46.30 zjKZ7QUf0.net
Wenzel が元気すぎてpybind11の後継でnanobind というができてるそうな
241:デフォルトの名無しさん
22/06/11 09:50:49.94 nz+Eexds0.net
>>236
>>236
> どれがnewか知りたい
何のために?
242:デフォルトの名無しさん
22/06/11 11:15:24.09 tfPbj1b+H.net
>>236
どれがnewかわからないと破綻するって設計がアレじゃ…
243:デフォルトの名無しさん
22/06/11 12:05:53.99 4swSPTBXM.net
Python以外ほとんど触ったことないけど、newの所在が分かって嬉しいのってc++のメモリ解放ぐらいじゃないの?
244:デフォルトの名無しさん
22/06/11 12:30:18.05 n44xIOE00.net
普通の言語だと
a = b.method() ← あっ、bはクラスなんだな って分かる
a = new b.class() ← あっ、newがあるからbはモジュールなんだな って分かる
newがないとクラスなのかモジュールなのかすら分からない
組み込みならともかく人が作ったやつだと八方塞がり
245:デフォルトの名無しさん
22/06/11 12:32:11.65 dcBTjSKMd.net
俺はお前のレスが分からない
246:デフォルトの名無しさん
22/06/11 12:38:24.57 dcBTjSKMd.net
pythonの分かりやすいパッケージ体系でわざわざコード汚さんと分からんてまじですか…
javaとか他言語なんも使えなさそうなレベル低い人に合わせてもしょうがない
247:デフォルトの名無しさん (JP 0H07-USYz)
22/06/11 14:14:01 K+4Tu9T8H.net
baka = aho.shine
gomi = Unko.manuke()
ちゃんと書け
248:デフォルトの名無しさん
22/06/11 15:29:23.41 lH7yBnt7H.net
カッコいい
249:デフォルトの名無しさん
22/06/11 15:31:51.53 I74lpP1GH.net
ところで
var = func()
って書けるけど、これ何かに使える? ただ書けちゃうだけ?
250:デフォルトの名無しさん (アウアウウー Sa67-hiZJ)
22/06/11 16:52:52 h1ISo/Y7a.net
>>241
初心者にウソを教えるな
251:デフォルトの名無しさん
22/06/11 17:35:13.69 GYyJ8Ce20.net
>>246
var = func()じゃあ単に引数なし関数を呼び出してるだけじゃない?
func = some_concrete_func
みたいなのはある
デザインパターンでいうストラテジーパターンかな?たとえば、ドローツールなんかで、いま選んでいるツールに応じてマウスイベントを処理するときに、
ツールが切り替わったとき(この場合は鉛筆ツール)に、
ondrag_func = pencil_on_drag_func
と代入しておけば、マウスイベントのハンドラでは、ツールのことを知らずに、ondrag_func(x, y)とかして呼び出せる
コールバック、関数ポインタ、言い方や似たような概念はいろいろあるけど、そこそこよく使うものだね
252:デフォルトの名無しさん
22/06/11 19:08:07.00 rnNGlre+0.net
docoptとargparseどっちがいい?
あるいはもっといいのある?
253:デフォルトの名無しさん (ワッチョイ 7f3b-3FeK)
22/06/12 15:40:11 Qy7sGzN40.net
docoptは、いちいちドキュメント書くのー?と敬遠してたけど、もっそい楽だった
簡単なオプションなのに最低限書かないといけないことが多い、みたいなこともなく、
シンプルなら定義も本当にシンプルで、それでいてエラー判定なんかも実装される
何かarg一つでも取るなら無条件でdocoptでいい感じ
254:デフォルトの名無しさん
22/06/13 22:30:00.31 .net
くるど!
255:デフォルトの名無しさん
22/06/14 14:34:34.56 9Nu3ASAo0.net
os.environ['CUDA_VISIBLE_DEVICES']の質問です
無効にしてCPUを使うときは-1を使うのはいいんですが、
PCにIntelのGPU0とNVIDIAのGPU1がついていて、
GPU1のほうを使いたいと思っています
この場合='1'にすればいいんでしょうか?
それともデバイス番号とタスクマネージャーのGPU番号は一致しないことがあるのでしょうか?
256:デフォルトの名無しさん (ワッチョイ 7f3b-3FeK)
22/06/14 15:59:18 D2tcxNGE0.net
仕事で末尾のセミコロンが無いというエラーが増えたのは絶対pythonのせい
257:デフォルトの名無しさん (ワッチョイ 2301-sNTE)
22/06/14 16:13:32 I+kl8I350.net
おいおい、宗教裁判かよw
258:デフォルトの名無しさん
22/06/14 16:57:52.10 3g7jzjW90.net
>>252
基本的にはそうだったはず
CUDA入れてるならnvidia-smiコマンドがインストールされてないかな
それをコマンドラインから打てば確認できたと思う
259:デフォルトの名無しさん
22/06/14 17:28:45.42 6xJIHeNj0.net
>>255
NVIDIAのGPU1しか認識されてなくて、そっちがDEVICE0でしたorz
でも便利なコマンド教え�
260:トくれてありがとうございました
261:デフォルトの名無しさん
22/06/15 19:55:51.99 qUrHvp9c0.net
>>255
cudaとpysparkって併用したいんだが。
良い方法ない?
262:デフォルトの名無しさん
22/06/15 20:15:22.70 0Rw78LVG.net
s=b"\x81y"
s.decode("sjis")
はできましたが
s="\x81y"
を動的にバイト列に変換して
s.decode("sjis")
したいのですがどうしたらいいでしょうか
263:デフォルトの名無しさん
22/06/15 20:35:16.53 0Rw78LVG.net
すでにエンコード済みかつbytesではないものを動的にbytesに変換する問題>>258
は解決しませんでしたが
やりたいことはres=requests.get先のウェブページの文字列取得で
すでに\x81yとなっているので困っていましたが
res.textではなく、res.contentとすることで解決しました
が、>>258は気になるので無理かどうかだけでも知りたいです
264:デフォルトの名無しさん
22/06/15 20:50:12.27 Z7kfo4VR0.net
s.encode('latin-1')でいいのかも
URLリンク(docs.python.org)
265:デフォルトの名無しさん (ワッチョイ 7f3b-3FeK)
22/06/15 21:02:14 uoynB9Pl0.net
さあ、われわれは下って行って、そこで彼らの文字コードを乱し、互に言葉が通じないようにしよう
Genesis 11:7
266:デフォルトの名無しさん
22/06/15 21:13:17 0Rw78LVG.net
>>260
ばっちりできました ありがとうございます
s="\x81y".encode('latin-1')
print(s)
print(s.decode("sjis"))
>>b'\x81y'
>>【
267:デフォルトの名無しさん
22/06/15 21:35:45.42 2pwDzYJj0.net
バベルの塔かな?
268:デフォルトの名無しさん (ワッチョイ ff7c-yQlT)
22/06/15 22:52:34 zk/mWu0Q0.net
>>257
PySparkのことをあんまり知らないんだがこれってCUDAと競合するようなものなの?
あんまりそうは見えないんだが
269:デフォルトの名無しさん
22/06/16 00:20:30 cYlpzbPX.net
おま環でしょうか
<div class="message">要素の有り無しに一貫性がないような・・?
要素がネストされているからかと思いきやそうでもなさそうだし
なぜでしょうか
import requests
from bs4 import BeautifulSoup as _soup
url="スレリンク(tech板)"
bs=_soup(requests.get(url).text, "html.parser")
posts=bs.select(".post")
for post in posts:
_print(post)
270:デフォルトの名無しさん
22/06/16 01:02:42.84 v7fiKns10.net
5chの仕様にここでなぜといわれても
271:デフォルトの名無しさん
22/06/16 01:29:33.24 cYlpzbPX.net
5chの仕様なのですか?
例えば、
headersやipアドレスから5ch側が何かしらレスポンスに反映していたり
スレのソースコードとhtml.parserの相性が悪いとかそういうことではなくて?
bs4で意図した取得ができない5chの仕様とは具体的に何でしょうか >>266
あとそもそもですが、仮に自分が「これは5chの仕様だな」とわかっていたら
答えがわかっているので質問自体していないと思いますよ
ちなみにソースコードを手動でコピペして成型して
<div class="thread"><div class="post"></div>・・・・</div>
の部分だけをbs4したら上手くいきました
272:デフォルトの名無しさん
22/06/16 01:38:45.16 5RJuUFJv0.net
ちょっとやってみたけど普通に見える
なにがおかしいの?
273:デフォルトの名無しさん
22/06/16 01:59:31.90 cYlpzbPX.net
>>268
普通に見えるとは、
エラーもなにも出ずに該当のレス分だけ再帰できた、ということではなく
該当レスすべてclass="message"のdiv要素も取得できた、ということですか?
自分の場合はprint(post) の結果が
<div class="post"><div class="meta"></div></div>で終わっているものと
<div class="post"><div class="meta"></div><div class="message"><span class="escaped">
のようにmessageまで取得できるものがあります
こういう感じです
URLリンク(i.imgur.com)
改めて手動ソースコピペやってみましたがなぜかできませんでした
(簡単なdomならば意図した通りに取得はできます)
274:268
22/06/16 02:14:06.76 5RJuUFJv0.net
私の環境では全部のpostにmessageがありますね
275:デフォルトの名無しさん
22/06/16 02:28:08.68 cYlpzbPX.net
>>270
自分のところではやはり消えてしまいます
そして進展があり、最小構成で再現できました
html='''
<div class="thread">
<div class="post">
<div class="meta">
<span class="name"><b>名前1</b>ワッチョイ<b></b></span>
</div>
<div class="message">
<span class="escaped">レス1</span>
</div>
</div>
<div class="post">
<div class="meta">
<span class="name"><b><a href="mailto:sage">名前2</b>ワッチョイ<b></a></b></span>
</div>
<div class="message">
<span class="escaped">レス2</span>
</div>
</div>
</div>
'''#.replace('<b><a href="mailto:sage">',"<b>").replace("<b></a></b>","")
おそらく<b><a href="mailto:sage">名前2</b>ワッチョイ<b></a></b>の部分
なぜかmailto:sageのときは<b></a></b>で挟み込んでいます(この部分を取り除いたらmessageのところが取得できました)
.replace('<b><a href="mailto:sage">',"<b>").replace("<b></a></b>","")を切り替えるとmessage取得できました。
(同じようにreplaceしたres.textはなぜかできませんでしたが・・replace漏れがあっただけかもしれない)
276:268
22/06/16 02:38:25.71 5RJuUFJv0.net
5chがぶっ壊れたhtmlを返してくるんですね
それだとバージョン違いとかで動作がおかしいことはありえる
parserをhtml5libにしてみるのがいいかもしれません
277:デフォルトの名無しさん
22/06/16 02:42:16.24 cYlpzbPX.net
.replace('<a href="mailto:sage">',"").replace('</a></b>','</b>')
にしたらいけました。
>>272
>html5lib
なるほど
bs=_soup(res.text, "html5lib")
いけました
ありがとうございます!
278:デフォルトの名無しさん
22/06/16 11:22:03.44 Wf4C+ynBa.net
pythonのライブラリやメソッドが何の例外を出すかって調べる方法で一番簡単な方法ってありますか?
279:デフォルトの名無しさん
22/06/16 11:41:46.02 oNoslqOO0.net
>>274
インタラクティブシェルで
>>> help(ライブラリやメソッド)
ちゃんとしたIDEなら同等のことやってくれる
280:デフォルトの名無しさん
22/06/16 12:09:49.06 3QgJWt630.net
pythonがcoreダンプで止まった。
pythonって止まる時、エラーコードを吐いてとまるから、直すの楽チンじゃん。
「え、coreダンプ」ってなるよね。
色々みたら、無限ループに陥って止ったらしい。
フー、久しぶりのディバッグって感じw
281:デフォルトの名無しさん
22/06/16 12:11:13.69 Wf4C+ynBa.net
>>275
ありがとうございます
機械的なチェックではなくドキュメント頼みになるんですね…
vscodeでos.statは例外出すよなあとか思って調べてて、osモジュール自体OSError返すってドキュメントに書いてあったけど、statからはそんな説明出てこなかったから気になってました
エラー出すとか言いながらos.path.existsはディスクエラーのときにfalse返すみたいだから厄介だなあとかも思ったり
282:デフォルトの名無しさん
22/06/16 12:58:31.81 uKxWv5AjF.net
とりあえず try で全部捕まえろ
283:デフォルトの名無しさん
22/06/16 13:09:38.53 oNoslqOO0.net
>>277
そこはしゃーないね
静的解析も限界あるしJavaみたいな検査例外じゃないと
公式なら記載漏れはないはず
>>278
想定してへん例外まで捕捉したらあかん
284:デフォルトの名無しさん
22/06/16 14:27:49.49 yWAyGzG60.net
なにかに処理を投げて待つときは
正常時、想定異常時、例外(デバッグ用)の3つを書きたい
285:デフォルトの名無しさん
22/06/16 15:15:09.58 IvGDyNVy0.net
正常な例外もある
286:デフォルトの名無しさん
22/06/16 19:39:52.07 hEUIHdUOa.net
>>279
握り潰すのはダメだが
想定される例外はそれなりの処理して
想定されてない例外はそのままthrow(raise)すれば良いだろ
287:デフォルトの名無しさん
22/06/16 20:49:06.27 IvGDyNVy0.net
関与しない例外は何もしないで呼び出し元に任せる
288:デフォルトの名無しさん (ワッチョイ 03cf-zEfY)
22/06/16 21:44:47 y3rAaRHS0.net
自分が想定してなかった例外をそのまま上流に移譲しても上流はもっと想定しようがないがな。
そういうのはもうpanicでいいじゃん、と。
289:デフォルトの名無しさん
22/06/17 01:32:37.32 xcJCAQEI0.net
そういうのは大域ハンドラで捕まえるもんだけどPythonは雑魚いからないんだよね
残念だ
290:デフォルトの名無しさん
22/06/17 10:12:12.20 VXwKdRVI0.net
それはそれで面倒だな
適切な階層の人が処理する、が一番柔軟でいいと思うけど
291:デフォルトの名無しさん
22/06/17 20:49:22.65 +4ZRuZfu0.net
ディレクトリ扱うとき、osとpathlibどっちが主流?
いつもos使ってたんだけどpathlibでできてosでできないようなことってある?
292:デフォルトの名無しさん
22/06/17 20:56:13.19 VXwKdRVI0.net
rmdirはどうやっても不便なので、subprocessでcmd /c rmdir呼んでますが
293:デフォルトの名無しさん
22/06/18 12:34:17.47 +Yt2p0300.net
iot勉強したくてラズパイ買ってPythonで動かそうと思ってるんだけどその質問ここでしていい?
294:デフォルトの名無しさん
22/06/18 12:37:48.98 6Dag0ThDM.net
ラズパイの開発言語って大抵はpythonかjsでしょ
ラズパイ固有の話ならラズパイスレのほうが回答貰えそう
295:デフォルトの名無しさん
22/06/18 13:08:04.28 V1rBblcpa.net
ラズパイなら電気板
296:デフォルトの名無しさん
22/06/18 13:26:49.40 TJ89mfHC0.net
どこで動こうがpythonはpython
言語仕様とかアルゴリズムの話なら共通でできる
でもどうせ詰まるのはラズパイ特有のライブラリ関連だろうから、
最初からラズパイの集まりにいた方が速い
297:デフォルトの名無しさん
22/06/18 13:41:29.97 6H4js5OL0.net
>>289
とりあえず質問内容書いてみ
スレ/板違いなら内容に応じて親切な人が誘導してくれるかも知れないし
298:デフォルトの名無しさん
22/06/19 00:26:09.17 m8jSBDD80.net
Djangoのテンプレートでオーバーライドするときにオーバーライドされるファイル名をextendsで書くけど無限ループ?かエラー?にならない理由は?(されるほうもするほうも同じファイル名なのに)
299:デフォルトの名無しさん
22/06/19 12:33:42.89 DR2Q5Ltm0.net
tensorflowで、学習させるときはGPU使ったほうが速いけど、学習データ作るときはCPU使ったほうが速い
強化学習で学習データ作成と学習を繰り返すとき、どちらにするか悩むというか、できれば都合よく切り替えてほしいんだけど、そういう機能ってないかね?
300:デフォルトの名無しさん
22/06/19 12:59:09.66 aGdRxJfT0.net
with tf.device(DEVICE):
で囲ってやってる
301:デフォルトの名無しさん
22/06/19 14:10:30.22 GIry7IXXH.net
>>296
いい情報ありがとう
学習だけGPUにやらせるようにしたら明らかに速くなったわ
学習はサクサク、その他は遅延なくいくようになった
ファンがうなることもないし最高だねありがとう
302:デフォルトの名無しさん
22/06/19 14:17:23.29 ImR3q9b/0.net
何学習させてるの?
303:デフォルトの名無しさん
22/06/19 15:04:46.51 mFXr9uBN0.net
そりゃセンシティブな画像とかでしょ
304:デフォルトの名無しさん
22/06/19 15:19:49.93 ImR3q9b/0.net
興味はあるけど活用例が思いつかないのでやる気にならない
猫と犬が判別できても何も得しない
305:デフォルトの名無しさん
22/06/19 15:24:46.09 v/jfVV5IH.net
>>298
今はAlphaZeroの本に従って三目並べ
技術的に不満な点を全部解決してから他のゲームに移ろうかと
306:デフォルトの名無しさん
22/06/19 15:40:27.94 ImR3q9b/0.net
好奇心だけでやるにしても、youtubeで公開したら興味持ってくれそうな新規性のある内容でないと
307:デフォルトの名無しさん
22/06/19 16:03:11.20 KT0YqJ+X0.net
お前にやれとは誰も言ってない
308:デフォルトの名無しさん
22/06/19 16:11:14.18 ImR3q9b/0.net
電子工作もそうなんだよな
いろいろ作れる知識と技術は揃ったけど、さて作るものが何もない
仕方ないのでLEDをチカチカさせる
309:デフォルトの名無しさん
22/06/19 16:13:45.50 ZyUc5d+aH.net
最初から新規性求めるのはどうかと思うね
まずは基礎を固めてその上でどうするかだろ
新規性だけ提案して完成度の低いものを作ってもパクられて改良されてオリジナル主張されるだけ
310:デフォルトの名無しさん (ワッチョイ fa3b-mFoo)
22/06/19 16:44:50 ImR3q9b/0.net
往々にして基礎を固め終わった時点で行き先を見失うんだよ
高専とかで具体的な課題に挑戦してる人たちが羨ましい
311:デフォルトの名無しさん (ワッチョイ 4e10-Psc3)
22/06/19 16:57:15 aGdRxJfT0.net
俺も最初の強化学習はAlphaZeroをオセロに適用したやつだった
結構いい題材だと思うわ
312:デフォルトの名無しさん
22/06/19 17:09:23.39 1eYD3N4yH.net
すぐに目的がなくても、基礎を完璧に固めておけば、アイデアが出たその時にすぐに実現できる
アイデアが先走っても、実力がなければ結局完成しなかったり、できても嘘くさかったりする
だから基礎は重要
313:デフォルトの名無しさん
22/06/19 17:19:20.52 ImR3q9b/0.net
でもアイデアなんか皆無じゃん
「やる理由を見つける」という不思議なことになってる
技術の習得自体が楽しいから、という動機で構わないけど、
それなら何か目的がありそうな思わせぶりは嘘になる
314:デフォルトの名無しさん
22/06/19 17:22:39.99 CQcbRoeX0.net
環境構築の学習が難しい
ネットにあるハウツー通りにはやれるけど、DockerとかAnacondaとかの違いがよくわからんし
参考にした記事書いてる人も実際そんなわかって無さそうな雰囲気あるし
どこ読めばいいんだ
315:デフォルトの名無しさん
22/06/19 17:24:15.55 KUEgo1bmH.net
実はもうすでにアイデアがあって実現しちゃったんだよね
自分のカラオケのスコアデータから伸びしろのある曲を抽出するAI
実際に一気に点数が伸びた曲もあって自分ではけっこう使える
他人にうらやましがられるようなものじゃないけど、自分でオリジナルのもの作って役に立って満足だよ
316:デフォルトの名無しさん
22/06/19 17:26:24.38 CQcbRoeX0.net
あとやっぱ初心者向け学習終わった後何すりゃええねん、ってのがあるな
ゲームで例えるなら、最初の村は細かくクエスト目標表示されてたのに
最初の村クリアした途端、広大なオープンワールドゲーが始まって放置された感がある
317:デフォルトの名無しさん
22/06/19 19:47:43.27 BUoOnpyZ0.net
世界中に天才がたくさんいて
役に立つこと、儲かることは
その人たちが率先してやっているからなあ
凡人は追いつくのさえおぼつかない
318:デフォルトの名無しさん (JP 0H12-uKTC)
22/06/19 20:55:53 GIry7IXXH.net
三目並べいじってたらだいぶ本のコードとは違うものになったw
本の内容でも無敵の引き分けマシーンはできるんだけど、できた結果は引き分け方に面白みがないものなので、もっと面白い引き分け方に誘導する工夫をあれこれ考えている
役に立たないけど楽しい
319:デフォルトの名無しさん
22/06/20 00:07:55.86 etQFdaAQr.net
>>312と>>314が伸びないヤツと伸びるヤツの違いを端的に物語っているな
320:デフォルトの名無しさん
22/06/20 00:47:10.32 3bt1t/j50.net
>>314 が伸びるかどうかはわからんけど楽しそうでなによりだし >>312 が伸びないのは俺にもわかる
321:デフォルトの名無しさん
22/06/20 01:00:32.11 X20uvhuh0.net
こういうの作って、一週間で
と無茶振りされて基礎固めとかすっ飛ばしてどうにか形に仕上げるのが一番速く上達する
322:デフォルトの名無しさん (ワッチョイ 4e63-sER5)
22/06/20 01:16:57 eaEy6Djy0.net
無事生還して
323:デフォルトの名無しさん
22/06/20 12:07:32.93 DqbRE9XnM.net
改造して遊べるサンプルプログラム集があれば良いのに
324:デフォルトの名無しさん
22/06/20 12:21:54.36 FyBBrco7H.net
質問です。
pipでvirtualenvをインストールした後
virtualenvコマンドを入力すると
command not found
になります。
$ pip install virtualenv --user
Successfully installed distlib-0.3.4 filelock-3.7.1 platformdirs-2.5.2 six-1.16.0 virtualenv-20.14.1
$ virtualenv -p python3 .venv
-bash: virtualenv: command not found
どうすれば良いのでしょうか?
OSは、macOS 10.14.6です。
325:デフォルトの名無しさん
22/06/20 12:38:29.97 bxeKTafS0.net
>>320
hash -r
Pythonじゃなくシェルの話
326:デフォルトの名無しさん
22/06/20 17:57:48.17 67whDYmfa.net
rm -rf /
327:デフォルトの名無しさん
22/06/21 00:26:02.74 OYLJ7OO30.net
from django.contrib.admin.sites import AdminSite, site as default_site
これ2つインポートして一つのリネームあるけどどういう意味?
328:デフォルトの名無しさん
22/06/21 00:27:56.57 OYLJ7OO30.net
昔のバージョンのdjangoだと
from django.contrib.admin.sites import site as default_site, AdminSite
になっててますます分からん
329:デフォルトの名無しさん
22/06/21 00:30:30.92 OYLJ7OO30.net
あー分かったぞ
from django.contrib.admin.sites import site as default_site
from django.contrib.admin.sites import AdminSite
こういうことか
330:デフォルトの名無しさん (ワッチョイ e301-YX/d)
22/06/21 17:50:04 MJ9GCdKb0.net
#ネストしたリストを使ってナルトの模様を描画したい
#ナルトの大きさ、記号、線のオフセットはユーザーから受け取りたい
def naruto_generator(size, naruto_char,offset):
naruto_matrix =[]
#空のリスト[]]を含む配列を、ユーザーの指定の長さで作成し、縦の数だけ複製
for i in range (size):
naruto_matrix.append([0 for i in range(size)])
#描画の現在位置であるカーソルを設定
cursor = 0
#ナルトがサイズの半分である中心に到達するまで処理を行う
while cursor <= size //2:
#上の横線の描画
for i in range(cursor, size - cursor):
naruto_matrix[cursor][i] = naruto_char
#右の縦線の描画
for i in range(cursor, size-cursor):
naruto_matrix[i][size - cursor -1] = naruto_char
#下の横線の描画
for i in range(cursor, size - cursor):
naruto_matrix[size - cursor -1][i] = naruto_char
#オフセットでカーソルを進めてから左の縦線を描画
cursor += offset
for i in range(cursor, size-cursor):
naruto_matrix[i][cursor] = naruto_char
return(naruto_matrix)
#あまりpython�
331:ロくないですね、全部リスト内包表記でやってしまう猛者とか期待します matrix = naruto_generator(size=40, offset= 3, naruto_char="#")
332:デフォルトの名無しさん
22/06/21 18:35:57.00 6NZqjzdl.net
ナルトのマーク?の定義ってどうだったっけ
>>326
print('\n'.join([''.join(map(lambda c:'■' if c=="#" else '□',m)) for m in matrix]))
URLリンク(i.imgur.com)
これでいいのかな
333:デフォルトの名無しさん
22/06/21 19:02:38.54 dw9eNT750.net
愚直に適当な螺旋の関数をXYテキスト座標全体で描画
334:デフォルトの名無しさん
22/06/21 19:49:24.95 MJ9GCdKb0.net
>>327
できれば一筆書きで
右に向かって10進み、下に向かって10進み、
左に向かって10進んで、帰りの上方向の縦線をオフセット分を減らした9進んで
というループで中に向かってオフセットを減らしていきたいです
ネストのリストでやると難しいですね。。。
335:デフォルトの名無しさん
22/06/21 20:59:30.02 6NZqjzdl.net
質問とはあんまり関係ないけど>>326のコードのインデントはこれで合ってるのだろうか
URLリンク(techiedelight.com)
336:デフォルトの名無しさん
22/06/21 21:05:02.19 MJ9GCdKb0.net
>>330
やばい、貼る前にいじってたら
おかしくしてしまったようです、見直します
337:デフォルトの名無しさん
22/06/21 21:19:12.45 M65qXj3y0.net
全角スペースでインデントできればいいのにな
strip()では消えるんだからスペースだと認識はしてるんだろ
338:デフォルトの名無しさん (ワッチョイ 7397-pVNA)
22/06/21 22:12:09 jjyHbonw0.net
>>329
内包表記にコンビネータ―のテクニックを組み合わせて再帰でうまいことやればできるはずなんだが、
再帰をコンビネータで表現するのがうまいことできなかった。一旦関数に名前つけてやればできるのだが。
ちなみにコードとしてはだいたいこんな感じになるはず。
URLリンク(ideone.com)
339:333
22/06/21 22:16:18.25 jjyHbonw0.net
>> 329
ちなみに、素直に書けばこんな感じ。
URLリンク(ideone.com)
340:デフォルトの名無しさん
22/06/21 22:32:28.95 MJ9GCdKb0.net
>>334
ありがとうございます、勉強させて頂きます
341:デフォルトの名無しさん
22/06/21 23:46:03.38 Hg0PvelR0.net
>>329
URLリンク(ideone.com)
numpyなしだから配列初期化まわりが雑多
342:デフォルトの名無しさん
22/06/22 00:30:28.22 U1EMQlUyd.net
URLリンク(wandbox.org)
343:デフォルトの名無しさん
22/06/22 17:00:40.96 zGZSF73Z0.net
pythonやりたいんだが
vsかcharmかコラボか。
複数のgpuを使いたいならどれがおすすめかな?
344:デフォルトの名無しさん
22/06/22 17:07:24.97 B6sxfOLx0.net
ぜったいにcharm
さもないと、イヌのふんをふみます
345:デフォルトの名無しさん
22/06/22 17:08:56.37 zGZSF73Z0.net
>>339
まじかw
何でcharmがいいのですか?
346:デフォルトの名無しさん
22/06/22 17:43:11.73 uPuQk0KY0.net
vscode/jupyterで十分なのにライセンス買ってしまったんやろうなぁ
347:784
22/06/24 21:38:40.61 XAULLIej0.net
vscodeのtabnineってめっちゃすごいね
すらすら書ける
348:デフォルトの名無しさん
22/06/24 23:35:30.80 i0e9JHiD0.net
>>342
え?あいつバカすぎない?
有料プランなの?
349:784
22/06/25 15:39:03.14 pT1NEJ3W0.net
>>343
いや、ほぼ直すけどさw
そのうち精度あがるんじゃないのかな?
有料プランのみ?