- くだすれPython(超初心者用) その27©2ch.net
472 :デフォルトの名無しさん[sage]:2015/10/10(土) 14:07:59.78 ID:UQMKf0jM - [hoge, 1]
[hog, 2] [ho, 3] [h, 4] . . . というような沢山のリストをループ処理の結果、出力する、というような関数を作ったのですが、返し値にうまく入ってくれません。 一回目のループ結果、つまりこの例で言う一番上の [hoge, 1]だけが値に入って返されてしまいます。 とうすれば全てのループ処理の後のデータが返し値に入ってくれるでしょうか。 ループの外にreturnをおいてもダメでした。 宜しくお願いします。
| - くだすれPython(超初心者用) その27©2ch.net
478 :デフォルトの名無しさん[sage]:2015/10/10(土) 18:05:20.74 ID:UQMKf0jM - >>474
すみません、こんな感じです f = open(u"data.txt") data1 = f.readlines() f.close f = open(u"del.txt", "r") del = [line.strip("\n") for line in f] f.close number = "150" def get(): _____for data in data1: _____list_a = data.strip("\n").split("\t") _____dict_a = {"name":list_a[0], "cluster":list_a[1]}_____if number in dict_a.values(): _______data2 = dict_a["name"].split() _______del_data = [d for d in data2 if d not in del] _______return del_data data.txtには 文字列、番号のセットのデータが大量に、 del.txtには削除したい文字列が改行区切りで入ってます。 番号は被っており、番号というよりかはグループのイメージです。 このコードだと、150という番号を持った文字列を抜き出し、さらにそこから所定の文字列を削除する、という処理が目的です。 宜しくお願いします。
| - くだすれPython(超初心者用) その27©2ch.net
482 :デフォルトの名無しさん[]:2015/10/10(土) 19:02:30.99 ID:UQMKf0jM - >>480
例えばdata.txtの中身が abcd 1 efgh 1 ijkl 1 mnop 2 qrst 2 uvwx 2 yz12 3 3456 3 789@ 3 (全てタブ区切り) だとして、numberを”1”とした場合、本当は ['abcd'] ['efgh'] ['ijkl'] が返ってきてほしいのにこのままだと ['abcd'] しか返ってこない、ということです。 >>481 変数名は適当に変えただけなので、都合のいいものに変換してくださると助かります。
|
|