前提・実現したいこと
[X]下記のAのlistとBのCSVファイルの中身と比較し、一致した行だけ取得したいです。
[Y]あるいはAのリストの中身を、Bを参考に置換処理を行いたいです。
以上2点のうちどちらか一方、実現する方法をご教示いただきたいです。よろしくお願いします。
該当のソースコード
A
1name_list = [tmp for tmp in member_list if tmp not in del_list] 2print(name_list) 3 4['U012JDYRD2T', 'U012X478FNZ']
B
1with open(file_path.file_path+"\"+"work""\"+str(datetime.date.today())+'_id.csv') as f: 2 reader = csv.reader(f) 3 data = [i for i in reader] 4 print(data) 5 6[['name', 'id'], 7 ['Slackbot', 'USLACKBOT'], 8 ['test_1', 'U012JDYRD2T'], 9 ['test_5', 'U012JDYSN07'], 10 ['kita', 'U012X478FNZ'], 11 ['test_4', 'U012XQBE63X'], 12 ['test_bot', 'U012YTNNPB5'], 13 ['test_3', 'U012ZC8AQ8K'], 14 ['tese_2', 'U013BQDLK6V']] 15#見やすくするために整形しています
###取得したいリスト(実現したい)
X
1下記のようなリストを作りたいです。 2つまりBのidの列とAのリストで一致する行をBから取得したいです。 3['test_1', 'U012JDYRD2T'], 4['kita', 'U012X478FNZ']
Y
1['U012JDYRD2T', 'U012X478FNZ'] 2あるいは上記リストを下記のよう置換したいです。(Aの値をBのNameの列の値に置換したいです) 3['test_1','kita']
背景・備考
slackのある発言に、リアクションをしていない人の一覧を作成したく、このようなことをしています。
Aはあるメッセージに対して、リアクションをしていない人のリスト。
Bはslackのメンバーが出力されているCSVファイルです。
###やってみたこと
replaceなど実施してみましたが、私では期待した結果は取得できませんでした。
###追記(回答を受けて)
**>date(?) **
dataでした。。。
>合致データを保管する適当な配列、例えば result を作ります。
>2 次元配列 date(?) をループさせ 1 次元に落として、
こちらの回答を受け以下のようなリストを作成。
r = [] for i in data: r = r + i ['name', 'id', 'Slackbot', 'USLACKBOT', 'test_1', 'U012JDYRD2T', 'test_5', 'U012JDYSN07', 'kita', 'U012X478FNZ', 'test_4', 'U012XQBE63X', 'test_bot', 'U012YTNNPB5', 'test_3', 'U012ZC8AQ8K', 'tese_2', 'U013BQDLK6V']
>2番目の値が name_list のいずれかと合致したら、result に入れてください。
1 次元に落とした際に2番目の値の取得方がわからず、以下で対処しました。
r2 = [] for i in mention_list_name: tmp = (r.index(i)) - 1 r2.append(r[tmp]) print(r2) ['test_1', 'kita']
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/11 11:35 編集
退会済みユーザー
2020/05/11 23:21
退会済みユーザー
2020/05/11 23:27
2020/05/12 13:14 編集