[過去ログ] くだすれPython(超初心者用) その46【Ruby禁止】 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
972(4): デフォルトの名無しさん [] 2020/03/06(金) 03:11:42.52 ID:9EQdyE3d(1/2) AAS
python3で質問です
for i in list1:
if ("A" or "B") in str(i):
list2.append(i)
elif "C"==str(i) or "D"==str(i) or "E"==str(i):#←ここ
list3.append(i)
else:
list4.append(i)
というコードがあるのですが、#部分が汚いというか煩雑で困っています。
いずれは#部分の比較文字列が増える可能性があるので、例えば
("C" or "D" or "E")==str(i)
みたいな感じでスマートに書きたいです。(ちなみにこれだと最初のCしか比較されませんでした。。。)
#部分をどうしたらいいでしょうか?
また、最終的には#部分で比較する別ファイルからリスト型に取り出してぱーっと比較したいです
その場合のアルゴリズムも(ファイルの読み込み操作とかは不要です)できたらほしいです
974: デフォルトの名無しさん [sage] 2020/03/06(金) 03:40:12.72 ID:HMS8G3Kn(1) AAS
>>972
in演算子でいいじゃん
if 比較したい値 in 値の入ったリスト
978(1): デフォルトの名無しさん [sage] 2020/03/06(金) 07:06:27.86 ID:Z17kfdKR(1/2) AAS
>>972
別にifとelifをABCの数だけ並べてもいいでしょ?
スマートな書き方は慣れてからでもいいでしょ
>ぱーっと比較したい
後半は急に雑な説明になって
何がしたいかよく分からん?
980: デフォルトの名無しさん [sage] 2020/03/06(金) 09:24:34.72 ID:6R/8Uuzj(1/2) AAS
>>972
リストの内容によってはこういう方法でもいける。
import re
list=["A","B","C","D","E","F"]
sList=",".join(list)
list2=list2+re.findall("[AB]",sList)
994: デフォルトの名無しさん [] 2020/03/06(金) 23:07:37.81 ID:MUtvLxi6(2/2) AAS
>>972
プログラムで処理できる
完全なサンプルデータを示してほしい
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.043s