[過去ログ] くだすれPython(超初心者用) その46【Ruby禁止】 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
970: 2020/03/05(木)20:57 ID:s/vnmaxn(3/3)調 AAS
丸投げはやっとるん?
971: 2020/03/05(木)21:01 ID:fCV+9Bpk(1)調 AAS
np.expand_dims
972
(4): 2020/03/06(金)03:11 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しか比較されませんでした。。。)

#部分をどうしたらいいでしょうか?

また、最終的には#部分で比較する別ファイルからリスト型に取り出してぱーっと比較したいです
その場合のアルゴリズムも(ファイルの読み込み操作とかは不要です)できたらほしいです
973: 972 2020/03/06(金)03:14 ID:9EQdyE3d(2/2)調 AAS
http://codepad.org/QoncQu10
すみません、、、インデント崩れました
これです
974: 2020/03/06(金)03:40 ID:HMS8G3Kn(1)調 AAS
>>972
in演算子でいいじゃん
if 比較したい値 in 値の入ったリスト
975: 2020/03/06(金)03:41 ID:zMfd3B+p(1)調 AAS
そんなもんお前…
str(i) in ('C', 'D', 'E')
やろ

ところで、最初の
('A' or 'B') in str(i)
は想定通りに動作してないと思われる
'A' in str(i)
相当だから
もう少し演算子について正確に学んだ方がいい
976
(1): 2020/03/06(金)06:32 ID:MUtvLxi6(1/2)調 AAS
文字列化すると"A" になるデータってどんなのかな
977: 2020/03/06(金)06:56 ID:qYlx8Qkc(1)調 AAS
>>976
ABO式血液型とカー?(ちょうてきとう)
978
(1): 2020/03/06(金)07:06 ID:Z17kfdKR(1/2)調 AAS
>>972
別にifとelifをABCの数だけ並べてもいいでしょ?
スマートな書き方は慣れてからでもいいでしょ

>ぱーっと比較したい
後半は急に雑な説明になって
何がしたいかよく分からん?
979
(1): 2020/03/06(金)08:46 ID:+VKnEuTi(1)調 AAS
>>978
>ぱーっと比較したい
俺、思うに、それが str(i) in ['C', 'D', 'E'....] のことじゃないのか
980: 2020/03/06(金)09:24 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)
981
(2): 972 2020/03/06(金)15:01 ID:yez0RtUo(1)調 AAS
>>979
これで#部分でやりたかったことが出来ました。
ありがとうございます
AとかBは簡略化のためで血液型とかじゃないです

比較する値(list1の各要素)には"ACC"みたいなものが来るようになっていて
Cが含まれていても”CX"みたいになっていたらelseに分岐させる感じの処理です

最初の部分の
if ('A' or 'B') in str(i):
も左をリストにして簡潔にしちゃいたいのですが
さっきのやり方(例えばif str(i) in ['A','B']:)だと"AA"とかがstr(i)に来たときに漏れてしまいます
str(i)にAかBが含まれているとき(例えばAB,AF,AA,BE)に分岐させる処理はどう書いたらいいでしょうか?
最初の
982
(1): 2020/03/06(金)15:10 ID:6R/8Uuzj(2/2)調 AAS
なかなかの後出しだな。

単にA,Bが含まれるという条件なのか、A,Bから始まるのか、
C〜の文字列は絶対A,Bは含まないのかなど、細かい条件で全然違うぞ
983: 2020/03/06(金)16:29 ID:Z17kfdKR(2/2)調 AAS
>>981
一言でいうと処理対象の複雑さによって処理が異なる
もし文法構造を有しているならパース処理が必要になるが
字の配列だけの問題なら分岐だけで処理できる

フローチャート的なif文の分岐が基本中の基本だから
短く書くやり方は基本が分かってからにしよう
具体的には先頭から一字ずつ判断して行けばいい

先頭の文字がAの場合、Bの場合、
それぞれについて次の文字がAの場合、Bの場合……
ってif文をネストしていけば書けるはず
984
(2): [age] 2020/03/06(金)18:02 ID:MP/8tjp8(1)調 AAS
pandasで以下のようなcsvファイルを読み込み、

burgers,meatballs,eggs
chutney
turkey,avocado

以下のような2次元配列に変換したいです。

[['burgers', 'meatballs', 'eggs'], ['chutney'], ['turkey', 'avocado']]

pandas.read_csv(..., heade=None).to_numpy().tolist()だとnanが含まれてしまいます。
for文でnan削除するよりスマートな方法はないでしょうか?
985: 972 2020/03/06(金)20:16 ID:9EOp8vfg(1/2)調 AAS
>>982
A,Bが含まれるという条件です
例えばAjsやskBfです
Cの文字列は絶対に含みません

後出しになっちゃって本当にすみません。。。

set()とか使って出来ないかなと思ってさっきも色々試したんですけどだめしでした。。。
986: 2020/03/06(金)20:45 ID:n2xpzai7(1/3)調 AAS
>>984
pandasじゃなくcsv.reader使ったのでよくない?
list(csv.reader(file))で意図した配列にできるよ
987: 984 2020/03/06(金)20:56 ID:MhiZvrbz(1)調 AAS
それでいいです。ありがとうございました。
988
(1): 2020/03/06(金)20:57 ID:n2xpzai7(2/3)調 AAS
>>981
any(x in str(i) for x in ['A', ‘B’])
pythonの場合このケースは正規表現のほうがわかりやすいかもね
989: 2020/03/06(金)20:58 ID:n2xpzai7(3/3)調 AAS
あと、str()必要??
990: 2020/03/06(金)21:49 ID:gkPkCuAw(1)調 AAS
perlみたく安直には出来ないようになってるからね
if (/C|D|E/)
ショウガナイね

そもそも最近のワカモンは正規表現の存在自体知らないんだよ
本当に、聞いたことすらないんだよ
991
(1): 2020/03/06(金)21:52 ID:gp44GQTA(1)調 AAS
正規表現はもう古すぎだよなあ
あんな暗号みたいなの覚えられんし方言もあるし
しかもデバッグが非常に難しい
992: 2020/03/06(金)21:56 ID:Fgd+2Xim(1)調 AAS
そんなあなたにRaku
993: 2020/03/06(金)22:12 ID:7d5kGJiP(1)調 AAS
正規表現使わずにプログラムするとかそっちのが苦痛だわ
994: 2020/03/06(金)23:07 ID:MUtvLxi6(2/2)調 AAS
>>972
プログラムで処理できる
完全なサンプルデータを示してほしい
995: 972 2020/03/06(金)23:29 ID:9EOp8vfg(2/2)調 AAS
>>988
すごいです。。。できました。。。

正規表現は一応貪欲なんとかとかかるーく使ったことある程度です
今回はうまくいけたのでヨシ!とします。。

any使ったことなかったので精進します
996: 2020/03/07(土)00:41 ID:k5ibAr7h(1)調 AAS
まず新スレ立てろデブ
2chスレ:tech
997: 2020/03/07(土)00:50 ID:CmL9X7tL(1)調 AAS
>>991
俺は自分が書いた正規表現ですら、後で見ると何にマッチするのかわからんってのが
あるからコメントが必須だからな。
すごい奴のすごい正規表現はもう何にマッチするのか文章の説明がないとさっぱりわからん
998: 2020/03/07(土)01:00 ID:AvLdWjOA(1)調 AAS
あれは魔術師の呪文と同じ
999: 2020/03/07(土)01:04 ID:k4ffI6Av(1/2)調 AAS
うまな
1000: 2020/03/07(土)01:04 ID:k4ffI6Av(2/2)調 AAS
うめ
1001
(1): 1001 ID:Thread(1/2)調 AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 64日 9時間 7分 36秒
1002
(1): 1002 ID:Thread(2/2)調 AAS
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。

───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.029s