!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る「横着」禁止)
ttps://techiedelight.com/compiler/ Run Code機能あり。
ttp://ideone.com/ デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/
●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その57
http://mevius.5ch.net/test/read.cgi/tech/1653225908/
〇前スレ〇 Pythonのお勉強 Part66
http://mevius.5ch.net/test/read.cgi/tech/1636970383/
次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ###
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
探検
Pythonのお勉強 Part67
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ aa97-ncNf)
2022/05/26(木) 13:45:15.95ID:veL/wiLO0115デフォルトの名無しさん (アウアウウー Sac5-G2Bm)
2022/06/02(木) 12:36:08.09ID:MPFVtYTLa116デフォルトの名無しさん (アウアウウー Sac5-G2Bm)
2022/06/02(木) 12:39:25.70ID:MPFVtYTLa117567 (ワッチョイ 2190-jzNG)
2022/06/02(木) 13:28:22.47ID:33kfmotx0 連結リストという概念を初めて知ったんだけど
pythonには標準でくみこまれてないんだよね?
pythonには標準でくみこまれてないんだよね?
118デフォルトの名無しさん (ワッチョイ 2bbb-g8Zs)
2022/06/02(木) 14:05:46.85ID:3ZZlbCpS0 ないね
標準化しても汎用性が低いし、仮に挿入削除が多くても、実環境で性能測定したらふつうの配列のほうが早かったってのはあるあるなので、用意されなかったのかも
標準化しても汎用性が低いし、仮に挿入削除が多くても、実環境で性能測定したらふつうの配列のほうが早かったってのはあるあるなので、用意されなかったのかも
119デフォルトの名無しさん (ワッチョイ d328-m0iL)
2022/06/02(木) 16:13:09.28ID:FBnHLBnp0 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が読み込まれません
どのように記述したらいいでしょうか
とあり、file3.pyで、
import file1
もしくは
import file2
とします
1と2を切り替えるのは3のファイルの中身を書き換えることになりますが、
これをfile4.pyで行い、file3.pyでは
import file4
としたいです
file4.pyに
import file1
と書くだけではfile3.pyにfile1.pyが読み込まれません
どのように記述したらいいでしょうか
120デフォルトの名無しさん (ワッチョイ 9321-9hOi)
2022/06/02(木) 16:40:24.26ID:2bJMdcf90 >>119
それぞれに名前空間があってimportでどうなるか考える
https://docs.python.org/ja/3/tutorial/modules.html#packages
# file4
from file1 import *
ただfile3からはfile4.xxxでアクセスすることになるから
import file1と同一ではない
それぞれに名前空間があってimportでどうなるか考える
https://docs.python.org/ja/3/tutorial/modules.html#packages
# file4
from file1 import *
ただfile3からはfile4.xxxでアクセスすることになるから
import file1と同一ではない
121デフォルトの名無しさん
2022/06/02(木) 17:19:29.03ID:svdPFYkt >>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"
https://colab.research.google.com/drive/1D4AKjHtj_KVasJ_nwjZ1OAp-kDY7iYuH
__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"
https://colab.research.google.com/drive/1D4AKjHtj_KVasJ_nwjZ1OAp-kDY7iYuH
122567 (スップ Sdf3-jzNG)
2022/06/02(木) 18:03:37.66ID:aVRHc6YOd >>118
調べたらこういうのがあったんだが
https://towardsdatascience.com/python-linked-lists-c3622205da81
ページの一番最後にコードがまとめてあるけど
66行目の return self って、流れ見ると、return self.tail が正しい気がするんだがどうだろう?
初心者だから正直良くわからん
調べたらこういうのがあったんだが
https://towardsdatascience.com/python-linked-lists-c3622205da81
ページの一番最後にコードがまとめてあるけど
66行目の return self って、流れ見ると、return self.tail が正しい気がするんだがどうだろう?
初心者だから正直良くわからん
123デフォルトの名無しさん (ワッチョイ 2bbb-g8Zs)
2022/06/02(木) 18:33:52.64ID:3ZZlbCpS0 ミスだと思う。
コメント欄があるみたいだから教えてあげたら
コメント欄があるみたいだから教えてあげたら
124ハノン ◆QZaw55cn4c (ワッチョイ b39b-RPpo)
2022/06/02(木) 18:35:52.69ID:aZCO8NlO0125デフォルトの名無しさん (ワッチョイ 2bbb-g8Zs)
2022/06/02(木) 20:39:38.41ID:3ZZlbCpS0 意味ないかどうかは、一万未満で早くしたいのか、100万件以上のときだけ早くしたいのか、開発者次第だから分からんね
126デフォルトの名無しさん (ワッチョイ b12c-v00t)
2022/06/02(木) 20:50:37.67ID:qTxX7xKb0 こんな無関係なスレでハノン氏を見かけるとはw
127デフォルトの名無しさん (ワッチョイ a109-o4Ch)
2022/06/03(金) 04:18:19.22ID:liVAJzUK0 私の環境ではtensorflow.python.keras.layersにBatchNormalizationが入っていないのですが、どうやったら入れられますか?
128デフォルトの名無しさん (JP 0Ha3-49YT)
2022/06/03(金) 18:05:45.59ID:jly4Bs+DH WARNING *** OLE2 inconsistency: SSCS size is 0 but SSAT size is non-zero
これ意味わかりますか?
これ意味わかりますか?
129デフォルトの名無しさん (ブーイモ MM75-/szq)
2022/06/03(金) 19:40:59.19ID:md39NJ8LM あるシーケンシャルデータが
0
1000
1000
1000
10
1000
1000
5
4
1000
1000
1000
って配列があったときに10以下を切れ目にグルーピングして二次元配列作りたいんだけど、ワンライナーで書く方法ある?
0
1000
1000
1000
10
1000
1000
5
4
1000
1000
1000
って配列があったときに10以下を切れ目にグルーピングして二次元配列作りたいんだけど、ワンライナーで書く方法ある?
130デフォルトの名無しさん (ワッチョイ 9322-9hOi)
2022/06/03(金) 20:27:17.91ID:mmKum4Qj0131デフォルトの名無しさん (ワッチョイ d33b-lH5o)
2022/06/03(金) 20:31:37.82ID:SNgr59AR0 何故かMemoryErrorになる
もう一度やるとならなかったりする
メモリなんか有り余ってるのに
もう一度やるとならなかったりする
メモリなんか有り余ってるのに
132デフォルトの名無しさん (ワッチョイ 4101-y+by)
2022/06/03(金) 21:26:21.75ID:A/r7iGb40 #背景:南北戦争の時代に使われていた暗号円盤(Cypher Disk)を再現したい。
# 下の画像のように外部の車輪を回して中身のアルファベットを指定する可変的な暗号機械にしたい。
# https://ja.wikipedia.org/wiki/%E5%8D%97%E5%8C%97%E6%88%A6%E4%BA%89%E3%81%AE%E4%BF%A1%E5%8F%B7%E5%8F%B8%E4%BB%A4%E9%83%A8#/media/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:UnionCipherDisk.nsa.jpg
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)
#外部の車輪を回転。時計の針がずれるように、インデックス文字以降が後半に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
# 下の画像のように外部の車輪を回して中身のアルファベットを指定する可変的な暗号機械にしたい。
# https://ja.wikipedia.org/wiki/%E5%8D%97%E5%8C%97%E6%88%A6%E4%BA%89%E3%81%AE%E4%BF%A1%E5%8F%B7%E5%8F%B8%E4%BB%A4%E9%83%A8#/media/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:UnionCipherDisk.nsa.jpg
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)
#外部の車輪を回転。時計の針がずれるように、インデックス文字以降が後半に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
133デフォルトの名無しさん (ワッチョイ 4101-y+by)
2022/06/03(金) 21:26:36.82ID:A/r7iGb40 #暗号生成開始
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])
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])
134デフォルトの名無しさん (ワッチョイ c6da-y+Ne)
2022/06/04(土) 08:21:30.69ID:XaXAMuD50 >>128
エクセルファイル壊したなw
エクセルファイル壊したなw
135デフォルトの名無しさん (ワッチョイ a9f6-fRoS)
2022/06/04(土) 10:39:04.46ID:vvbHqYcO0 >>132
https://upload.wikimedia.org/wikipedia/commons/a/a1/UnionCipherDisk.nsa.jpg
内側の円盤に 7 とか & とかあるけど何なん?
https://upload.wikimedia.org/wikipedia/commons/a/a1/UnionCipherDisk.nsa.jpg
内側の円盤に 7 とか & とかあるけど何なん?
136デフォルトの名無しさん (JP 0Hf2-P9uP)
2022/06/04(土) 12:23:28.16ID:lbS14JzhH137デフォルトの名無しさん (JP 0Hf2-PlZv)
2022/06/04(土) 13:57:47.67ID:fS6UzCwCH tensorflowでload_modelのあとの.compileって要りますか?
最初にモデル構築したときにコンパイルしてたら要りませんか?
最初にモデル構築したときにコンパイルしてたら要りませんか?
138デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/04(土) 14:11:05.42ID:wbzuouUH0 sys.argv[1] があればそれを返してなければ別に決めたdefaultの値を返す
というのをtryを使わずにシンプルに書くには?
というのをtryを使わずにシンプルに書くには?
139デフォルトの名無しさん (ブーイモ MMde-pzfg)
2022/06/04(土) 14:18:13.51ID:DNUj2Sn5M sys.argv[1] if len(sys.argv) > 1 else あ
140デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/04(土) 14:29:26.90ID:wbzuouUH0 if条件を後付けできたっけ? と一瞬見えたけどpythonの三項演算子か
文章として読めるくらい自然
誰だ最初に cond ? true val : false val の書き順を考えた奴は
文章として読めるくらい自然
誰だ最初に cond ? true val : false val の書き順を考えた奴は
141デフォルトの名無しさん (ワッチョイ a9f6-fRoS)
2022/06/04(土) 17:13:13.78ID:vvbHqYcO0 >>138
(sys.argv.__getitem__(slice(1, 2, None))+['default value'])[0]
(sys.argv.__getitem__(slice(1, 2, None))+['default value'])[0]
142デフォルトの名無しさん (JP 0Hf2-RYpR)
2022/06/04(土) 18:00:53.05ID:okTxRfSRH OpenAI GymのAcrobotの最短ゴールステップ数はいくつですか?
143デフォルトの名無しさん (ワッチョイ c6da-y+Ne)
2022/06/04(土) 19:42:17.06ID:XaXAMuD50144デフォルトの名無しさん (ワッチョイ 152c-oPJe)
2022/06/04(土) 19:45:28.28ID:nP9ATT2W0 vscodeで書いてる人いる?
関数名単位で折り畳んでるコードの途中を書き直してると
なにかのタイミングでそこ以下の全折り畳みが勝手に開いちゃうんだけど
これ設定でどうにかならないのかな
たぶん書き直し中の意味なさない文字列にpylanceとかが反応してるんじゃないかと思うんだけど…
関数名単位で折り畳んでるコードの途中を書き直してると
なにかのタイミングでそこ以下の全折り畳みが勝手に開いちゃうんだけど
これ設定でどうにかならないのかな
たぶん書き直し中の意味なさない文字列にpylanceとかが反応してるんじゃないかと思うんだけど…
145デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/04(土) 19:56:47.68ID:wbzuouUH0 excelのバグでオブジェクト移動すると壊れることがあった
zipにして解凍して手動で修復しないと戻せない
zipにして解凍して手動で修復しないと戻せない
146デフォルトの名無しさん (ワッチョイ 86a5-fRoS)
2022/06/04(土) 22:46:33.32ID:F4p6GD1l0 seleniumでログイン維持した状態で色々試してたら複数の同じidでのログインが確認されましたって
サイト側で出て、終了はquitで終了させてるんですけど、quitだとちゃんと終了出来ないんですか?
またちゃんと終了させるにはどうすればいいのでしょうか?
サイト側で出て、終了はquitで終了させてるんですけど、quitだとちゃんと終了出来ないんですか?
またちゃんと終了させるにはどうすればいいのでしょうか?
147デフォルトの名無しさん (ブーイモ MMea-naiY)
2022/06/04(土) 23:00:29.30ID:c6VkDSm3M ログアウトボタンを押せばいいんじゃね?
148デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/04(土) 23:16:53.41ID:wbzuouUH0 closeしてないとか
149デフォルトの名無しさん (アウアウウー Sa11-fRoS)
2022/06/05(日) 13:09:56.43ID:u0j22vIZa150デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/05(日) 13:40:12.13ID:cfenzNII0 win10のcmdでエスケープシーケンスで色を付けたら、
黄色がどう見ても黄土色なので、代わりにESC[38;5;226mを使おうとすると、
うまく行くソフトと無視されるソフトがある
条件は何も変わらない筈なのに何が邪魔してるんだろう
黄色がどう見ても黄土色なので、代わりにESC[38;5;226mを使おうとすると、
うまく行くソフトと無視されるソフトがある
条件は何も変わらない筈なのに何が邪魔してるんだろう
151デフォルトの名無しさん (アウアウウー Sa11-fRoS)
2022/06/05(日) 13:45:41.54ID:u0j22vIZa cmdの色付けはもうescの時代じゃないぞ
api使え
api使え
152デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/05(日) 14:10:42.03ID:cfenzNII0 termcolorだと拡張に対応してないのでやっぱりyellowは黄土色なんだよな
やってることは同じ
やってることは同じ
153デフォルトの名無しさん (アウアウウー Sa11-fRoS)
2022/06/05(日) 15:45:10.23ID:udiiYXiVa REG ADD HKCU\CONSOLE /f /v VirtualTerminalLevel /t REG_DWORD /d 1
または
https://boukenki.info/commandprompt_ichibu_tokutei_mojiretu_iro_henkou_houhou/
または
https://boukenki.info/commandprompt_ichibu_tokutei_mojiretu_iro_henkou_houhou/
154デフォルトの名無しさん (ワッチョイ 86b0-mdPC)
2022/06/05(日) 16:06:28.25ID:PQtNePYx0 >>131
32bit版使ってないか確認
32bit版使ってないか確認
155デフォルトの名無しさん (ワッチョイ 9d90-hMqK)
2022/06/06(月) 06:00:56.68ID:uEmonKGk0 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文書かないって制約ないとこんなの作らないよね?
例えば↓とか
リスト 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文書かないって制約ないとこんなの作らないよね?
156デフォルトの名無しさん (ワッチョイ 9d97-GLPP)
2022/06/06(月) 07:56:51.35ID:oHO1A3NO0 Pythonの場合ほとんど内包表記で書いた方が短くなるからmap,filterを使うことは少ないな。
でも、慣れたらわかるよ。
len([v for v in ln if v > n])かなあその例だったら。
でも、慣れたらわかるよ。
len([v for v in ln if v > n])かなあその例だったら。
157デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/06(月) 08:12:53.83ID:vU8u/TBb0 個数なんだからlenだな
ネストしないなら内包表記でもフィルターでも大差ない
むしろフィルターの方が直感的
ネストしないなら内包表記でもフィルターでも大差ない
むしろフィルターの方が直感的
158デフォルトの名無しさん (スフッ Sdea-JaQN)
2022/06/06(月) 09:46:59.38ID:MeEZ09lYd >>> 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
>>> 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
159デフォルトの名無しさん (アウアウウー Sa11-fRoS)
2022/06/06(月) 09:50:54.37ID:Ug3DHjCKa sum(i>3) でいけるな
160デフォルトの名無しさん (ブーイモ MM39-GLPP)
2022/06/06(月) 10:02:06.45ID:WnvkflPwM >>157
そうかなあ?慣れだと思うけど
メソッドチェーンでfilter,map書ければわかりやすいけど Pythonの記法だとどっちもどっちな気がする。
自分は複雑なmap/filterはむしろ内包表記に変形して理解するわw
そうかなあ?慣れだと思うけど
メソッドチェーンでfilter,map書ければわかりやすいけど Pythonの記法だとどっちもどっちな気がする。
自分は複雑なmap/filterはむしろ内包表記に変形して理解するわw
161デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/06(月) 10:39:40.85ID:vU8u/TBb0 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
だともっと複雑
[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
だともっと複雑
162デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/06(月) 11:18:23.25ID:vU8u/TBb0 処理対象のリストが中間に来ると、ネストした時に
[ ... in list ...]
[ ... in [ ... in list ...] ...]
[ ... in [ ... in [ ... in list ...] ...] ...]
こんな増え方をするので一気に読めなくなる
[ ... in list ...]
[ ... in [ ... in list ...] ...]
[ ... in [ ... in [ ... in list ...] ...] ...]
こんな増え方をするので一気に読めなくなる
163デフォルトの名無しさん (ワッチョイ 4a02-+66E)
2022/06/06(月) 11:27:14.55ID:UZF8Zcz90 本来はそのためのインデントだったんだが・・・
164デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/06(月) 11:30:23.10ID:vU8u/TBb0 [x for x if x>n in ln]
という語順でif節は省略可能、みたいな文法だったら、
ネストしても文章になってた筈
という語順でif節は省略可能、みたいな文法だったら、
ネストしても文章になってた筈
165デフォルトの名無しさん (アウアウウー Sa11-fRoS)
2022/06/06(月) 11:50:14.01ID:Ug3DHjCKa 通常 for のネストは内側優先だが
内包 for のネストは外側優先なのか
内包 for のネストは外側優先なのか
166デフォルトの名無しさん (ガックシ 0671-GLPP)
2022/06/06(月) 12:10:49.41ID:GZdIbtar6 map/filterでも、あんまりややこしいのは1つの式でなく適度に分割した方がいいと思うけどね。
ifが無くても内包表記のネストが3段とかになるとそもそも相当読みづらい
内包表記でもジェネレーターの内包表記にしておけば余計なリストを作らずに済むし
JSとかRubyのln.filter(関数).map(関数).reduce(関数)のスタイルは圧倒的に読みやすいと思うけどね。
ifが無くても内包表記のネストが3段とかになるとそもそも相当読みづらい
内包表記でもジェネレーターの内包表記にしておけば余計なリストを作らずに済むし
JSとかRubyのln.filter(関数).map(関数).reduce(関数)のスタイルは圧倒的に読みやすいと思うけどね。
167デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/06(月) 12:10:57.50ID:vU8u/TBb0 内包表記は[x for x in ...]の先頭のxがxじゃない時が本来の使い方で、
x for xでifを付けるなら、それはやっぱりフィルターだと思う
フィルターならフィルターだと書いた方がlambdaがあったとしても読みやすい
癌はmapで、これはどう書いても内包表記の方が優れてる
単純なmapでもそうだし条件が付くならなおさら
x for xでifを付けるなら、それはやっぱりフィルターだと思う
フィルターならフィルターだと書いた方がlambdaがあったとしても読みやすい
癌はmapで、これはどう書いても内包表記の方が優れてる
単純なmapでもそうだし条件が付くならなおさら
168784 (アウアウウー Sa11-9qgS)
2022/06/06(月) 12:26:45.75ID:9Upi+T9Ya 内包表記って必要なの?
処理が少しでも早くなるならいいけど、
見辛い、理解しづらいってなんの得になるの?
処理が少しでも早くなるならいいけど、
見辛い、理解しづらいってなんの得になるの?
169デフォルトの名無しさん (ワッチョイ 8646-Q5o7)
2022/06/06(月) 12:29:04.88ID:v7exk6pA0 複雑な内包表記を書くときは分割するかforループにしろ
170デフォルトの名無しさん (ワッチョイ 159b-OMHl)
2022/06/06(月) 12:32:23.41ID:GbLd0KfZ0 内包表記でもインデントできるので、可読性をあげたい時は使ってみてください
171デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/06(月) 12:36:05.67ID:vU8u/TBb0 インデントまで必要な時点でどうやっても読みにくい
172デフォルトの名無しさん (ワッチョイ 1563-i/7j)
2022/06/06(月) 12:41:55.19ID:+tLOHMcU0 mapがうんちなのは本当になんとかしてほしい
デフォルトエンコーディングをutf8にするとかどうでもいいから
デフォルトエンコーディングをutf8にするとかどうでもいいから
173デフォルトの名無しさん (JP 0H71-4pLq)
2022/06/06(月) 12:50:56.61ID:m98Jb+yzH map(int, float_no_list)みたいなときしか使わないな
この場合は、
[*map(int, float_no_list)]のほうが、
[int(v) for v in float_no_list]のより短いから使うだけ
打つ量を減らしたいだけで読みやすさで選んでないな
Jupyter上で試行錯誤が多いから。あとでちゃんとしたコードにするときに読みやすさは考える
この場合は、
[*map(int, float_no_list)]のほうが、
[int(v) for v in float_no_list]のより短いから使うだけ
打つ量を減らしたいだけで読みやすさで選んでないな
Jupyter上で試行錯誤が多いから。あとでちゃんとしたコードにするときに読みやすさは考える
174デフォルトの名無しさん (JP 0H71-4pLq)
2022/06/06(月) 13:00:44.68ID:m98Jb+yzH >>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))とかもあるけど技巧的だね
ちなみに元の例に戻ると、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))とかもあるけど技巧的だね
175567 (スップ Sdca-PXuc)
2022/06/06(月) 13:06:38.95ID:oBW+89oQd176デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/06(月) 13:19:09.72ID:vU8u/TBb0 ジェネレータにlenが無いのは手抜きではなくて本質的な話だよな
177デフォルトの名無しさん (ワンミングク MM5a-La+v)
2022/06/06(月) 14:07:03.38ID:vZsNJksDM len(list(filter(lambda x: x>n, ln)))
これでいけると思う
何かフィルターした後のリストの長さってのがぱっと見でわかるから個人的には内包表記よりこっちのがいいな
自分が内包表記が苦手なのもあるけど
これでいけると思う
何かフィルターした後のリストの長さってのがぱっと見でわかるから個人的には内包表記よりこっちのがいいな
自分が内包表記が苦手なのもあるけど
178デフォルトの名無しさん (スップ Sdca-PXuc)
2022/06/06(月) 14:19:50.83ID:oLiAgBI4d def number_of_big_number(ln, n):
f = filter(lambda x: x>n, ln)
m = map(lambda x: 1, f)
return sum(m)
よく考えたらこれでよくね?
f = filter(lambda x: x>n, ln)
m = map(lambda x: 1, f)
return sum(m)
よく考えたらこれでよくね?
179デフォルトの名無しさん (テテンテンテン MMde-1n2n)
2022/06/06(月) 14:46:26.36ID:sRSbc3ijM リストはミュータブルなのにa, b = [1, 2, 3]; b = []; len(a);len(b)で3, 0となるのは何故なのさ?
180デフォルトの名無しさん (ワッチョイ 8646-fRoS)
2022/06/06(月) 14:58:54.17ID:v7exk6pA0 a = b = [1, 2, 3]; b = []; print(a, b)
a = b = [1, 2, 3]; b[:] = []; print(a, b)
a = b = [1, 2, 3]; b[:] = []; print(a, b)
181デフォルトの名無しさん (ワッチョイ 1a32-yFCf)
2022/06/06(月) 15:00:14.40ID:wz8sfihq0 map(lambda x: 1,...はメモリ上へのlist化をさける苦肉の策だろうけど
前提条件なんか無視してsum(1 for x in ln if x > n)したほうが良さそう
>>179
なぜ両方空にならないのかという意味であれば、同じ参照でも変数は個別に存在し
単純代入は新しい参照先の割り当てに過ぎず、元の参照先を編集してる訳ではない
前提条件なんか無視してsum(1 for x in ln if x > n)したほうが良さそう
>>179
なぜ両方空にならないのかという意味であれば、同じ参照でも変数は個別に存在し
単純代入は新しい参照先の割り当てに過ぎず、元の参照先を編集してる訳ではない
182デフォルトの名無しさん
2022/06/06(月) 15:03:53.80ID:8NtqgJJW 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]
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]
183デフォルトの名無しさん (アウアウウー Sa11-fRoS)
2022/06/06(月) 15:04:51.12ID:Ug3DHjCKa sum(map(lambda x: x > n, In))
184デフォルトの名無しさん (ワッチョイ 1a32-yFCf)
2022/06/06(月) 15:22:37.41ID:wz8sfihq0 なるほどPythonic、ブールは整数の派生型だったな。sum(map(n.__lt__, ln))で済む事もあるか
185デフォルトの名無しさん (テテンテンテン MMde-1n2n)
2022/06/06(月) 15:33:43.92ID:sRSbc3ijM ああ分かったよ参照地の値渡しってこんなんだったな
参照渡しとごっちゃになってた
ややこしいなーおい
参照渡しとごっちゃになってた
ややこしいなーおい
186デフォルトの名無しさん (JP 0H71-4pLq)
2022/06/06(月) 16:39:39.60ID:m98Jb+yzH sumレベルだと、reduceする意味ないよな、長くなるだけで
functools.reduce(lambda a, x: a + int(x > n), ln) とは書けるが
もっと特殊な集計をしたいのならreduceは有り得そうな気がするが
functools.reduce(lambda a, x: a + int(x > n), ln) とは書けるが
もっと特殊な集計をしたいのならreduceは有り得そうな気がするが
187デフォルトの名無しさん (JP 0H71-4pLq)
2022/06/06(月) 16:43:09.43ID:m98Jb+yzH sum(map(lambda x: x > n, In))
は、
sum(x > n for x in ln)
にもできるね。このforはfor「文」ではないしね
は、
sum(x > n for x in ln)
にもできるね。このforはfor「文」ではないしね
188デフォルトの名無しさん (ワッチョイ 6d01-n+i2)
2022/06/06(月) 21:04:54.69ID:OVrZnyn60 敢えてリスト内包で書いてみる
#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]
改行しても読みにくいですね。。。
#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]
改行しても読みにくいですね。。。
189デフォルトの名無しさん (ワッチョイ 9d97-GLPP)
2022/06/06(月) 21:41:41.07ID:oHO1A3NO0 itertools.repeatとか使ったら1行の内包表記で書ける気がするけどな。
190デフォルトの名無しさん (ワッチョイ 9d97-4pLq)
2022/06/06(月) 21:56:47.75ID:oHO1A3NO0 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]
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]
191デフォルトの名無しさん (ワッチョイ 9d97-4pLq)
2022/06/06(月) 21:57:12.33ID:oHO1A3NO0 すまん最後の行はcypher = にしといてくれ
192デフォルトの名無しさん (ワッチョイ 8646-fRoS)
2022/06/06(月) 21:57:34.54ID:v7exk6pA0 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]
alphabets = alphabets[i:] + alphabets[:i]
cypher = key_string + [c for c in alphabets if c not in key_string]
193デフォルトの名無しさん (ワッチョイ 6d01-n+i2)
2022/06/06(月) 22:33:35.11ID:OVrZnyn60194デフォルトの名無しさん (ブーイモ MM2e-106b)
2022/06/06(月) 22:35:12.91ID:AnrgIbHNM 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)
ネストした内包表記ほどじゃないけど
メソッドチェーンで書けないからかなり読みにくい
実際作るなら各行を関数化して関数名で意図が伝わるようにする
alphabets = ‘’.join(reversed(ascii_uppercase.split(key_string[-1])))
cypher = key_string + ‘’.join(x for x in alphabets if x not in key_string)
ネストした内包表記ほどじゃないけど
メソッドチェーンで書けないからかなり読みにくい
実際作るなら各行を関数化して関数名で意図が伝わるようにする
195デフォルトの名無しさん (ブーイモ MM2e-106b)
2022/06/06(月) 22:40:48.17ID:AnrgIbHNM >>192のindexとsliceで入れ替えるほうがPythonっぽいかも
splitしてからreverseしてみたいに考えるのは他の言語の影響を強く受けてる
splitしてからreverseしてみたいに考えるのは他の言語の影響を強く受けてる
196デフォルトの名無しさん (スップ Sdca-PXuc)
2022/06/07(火) 17:29:22.71ID:TSpMo2rsd pandasってなぜパンダなの?
197デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/07(火) 17:38:59.82ID:MOJeClMf0 Pediatric Autoimmune Neuropsychiatric Disorders Associated with Streptococcal Infections
198デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/07(火) 17:53:38.32ID:MOJeClMf0 UnRAR.exe でrarの中身のリストを取ってくる時、sjisに無い文字が?になってしまう
7za.exe はutf-8で出力するモードがあって問題は起きないけど、UnRARはsjis固定ぽい
詰んでる?
7za.exe はutf-8で出力するモードがあって問題は起きないけど、UnRARはsjis固定ぽい
詰んでる?
199デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/07(火) 20:44:13.38ID:MOJeClMf0 よく判らんのが、コンソールに表示させるだけなら正しく表示される
ファイルにリダイレクトさせると化けてるというか?に置き換えられてる
恐らくそれと同じ理由で、subprocess.PIPEもおかしくなる
ファイルにリダイレクトさせると化けてるというか?に置き換えられてる
恐らくそれと同じ理由で、subprocess.PIPEもおかしくなる
200デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/07(火) 21:02:33.25ID:MOJeClMf0 7zaではなく7zにすればrarも扱えるので解決
201デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/08(水) 12:21:03.28ID:7ub2o1NQ0 for
try:
処理
except:
continue
finally:
後処理
みたいに書くと、finallyを無視してcontinueしてしまうのでは?と思ったけど
そんなことは無かった
try:
処理
except:
continue
finally:
後処理
みたいに書くと、finallyを無視してcontinueしてしまうのでは?と思ったけど
そんなことは無かった
202デフォルトの名無しさん (スフッ Sdea-5VDJ)
2022/06/08(水) 12:46:08.13ID:vcMlxkVMd 普通そんな書き方そもそもしない
203デフォルトの名無しさん (ガックシ 06de-ri9p)
2022/06/08(水) 12:51:55.05ID:cdI+dEzz6 変なとこに飛ばないためのfinally なので
204デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/08(水) 17:17:05.18ID:7ub2o1NQ0 文字列のリストがあって、先頭が#で始まっていない最初のものを取り出す
ループを使わずに書くには?
ループを使わずに書くには?
205デフォルトの名無しさん (ワッチョイ 8646-Q5o7)
2022/06/08(水) 17:20:35.02ID:E4mWgpqm0 そんなのループでいいけど
next(s for s in L if not s.startswith('#'))
next(s for s in L if not s.startswith('#'))
206デフォルトの名無しさん (ワッチョイ 6d01-n+i2)
2022/06/08(水) 17:21:15.32ID:AiIZO1YE0 >>204
[w for w in list if not w.startswith(“#”)]
[w for w in list if not w.startswith(“#”)]
207デフォルトの名無しさん (ワッチョイ 6d01-n+i2)
2022/06/08(水) 17:22:19.41ID:AiIZO1YE0 あ、その[1]か、最初だから
208デフォルトの名無しさん (ワッチョイ 6d01-n+i2)
2022/06/08(水) 17:22:54.21ID:AiIZO1YE0 ごめん0だった
209デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/08(水) 17:30:28.69ID:7ub2o1NQ0 next()はStopIterationが怖い
210デフォルトの名無しさん (ワッチョイ 8646-Q5o7)
2022/06/08(水) 17:31:33.09ID:E4mWgpqm0 第2引数
211デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/08(水) 17:39:20.66ID:7ub2o1NQ0 該当するものが無かった場合、デフォルトを設定しておいて、もしデフォルトだったら、とするか、
普通にエラーにしてtryで捕まえるのとどっちがいいだろう
エラーが出ないようにいろいろ配慮して書くより、何も考えずにエラーにする方が
python的な気がしてきた
普通にエラーにしてtryで捕まえるのとどっちがいいだろう
エラーが出ないようにいろいろ配慮して書くより、何も考えずにエラーにする方が
python的な気がしてきた
212デフォルトの名無しさん (ワッチョイ ea2c-oPJe)
2022/06/08(水) 17:48:28.41ID:xigHBt180 そんなもんpythonでなくとも一緒
213デフォルトの名無しさん (ワッチョイ 6d01-n+i2)
2022/06/08(水) 18:45:29.37ID:AiIZO1YE0 scrapyとかboto3の話もしたいなぁ
214デフォルトの名無しさん (ワッチョイ a933-Rebr)
2022/06/08(水) 22:58:19.98ID:9QcK/PFh0 例外処理は言語関係なく大事なので勉強してください
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- カードじゃなくて「紙」が活躍中…健康保険の「資格確認書」 大きすぎて困惑する人も [蚤の市★]
- 「やっぱり顔採用かよ…」就活生を襲う“見えないルッキズム”の現実 [七波羅探題★]
- 今後50年間、毎年100万人ずつ人口が減る…「少子化対策」の失敗で日本が迎える「死ぬまで搾取」というヤバい未来 ★9 [ぐれ★]
- 「5人が抱き合う遺体発見」香港高層火災、150人安否不明 警察はボランティア警戒 [蚤の市★]
- 「怒りに震えて涙が出た」 同性婚認めず「合憲」判断に原告が反発 「差別的な判決だ」 ★5 [ぐれ★]
- 【野球】菅野智之 WBC出場熱望 取り戻したい8年前の“忘れ物” 36歳全力「ラストチャンス」 現在はFA「無職」 [ぐれ★]
