■やりたいこと
-出席リスト
group_no:0 kobetsu_no:2,5
group_no:1 kobetsu_no:1,3,4
group_no:2 kobetsu_no:1
group_no:3 kobetsu_no:4
-リスト化
group_no_list= [0, 0, 1, 1, 1, 2, 3]
kobetsu_no_list = [2, 5, 1, 3, 4, 1, 4]
※group_no_listとkobetsu_no_listは同じ要素数
group_table = [0, 1, 2, 3] #group_noが扱う値の定義
kobetsu_table = [1, 2, 3, 4, 5] #kobetsu_noが扱う値の定義
all_data = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5] #group0:1,2,3,4,5(kobetsuの値全て) からgroup3:1,2,3,4,5までを格納したリスト
copy_data = [] #group_no_listとkobetsu_no_list 用いてall_dataからグループから出席したkobetsu_noを抽出したい
※補足:上記group_no_list,kobetu_no_listからall_data = [1,** 2**, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5] の太字を抽出したい
■試した事
python
1group_no_list= [0, 0, 1, 1, 1, 2, 3] 2kobetsu_no_list = [2, 5, 1, 3, 4, 1, 4] 3group_table = [0, 1, 2, 3] 4kobetsu_table = [1, 2, 3, 4, 5] 5all_data = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5] 6copy_data = [] 7 8i = 0 9j = 0 10for k in range(len(group_table)): 11 for l in range(len(kobetsu_table)): 12 if i < len(kobetsu_no_list): 13 gropu_read = group_no_list[i] 14 group = group_table[k] 15 kobetsu_read = kobetsu_no_list[i] 16 kobetsu = kobetsu_table[l] 17 if gropu_read == group and kobetsu_read == kobetsu: 18 copy_data.append(all_data[j]) 19 i = i + 1 20 else: 21 pass 22 j = j + 1 23 else: 24 break 25print(copy_data)
■結果
[2, 5, 1, 3, 4, 1, 4]
正しい結果となった
■教えていただきたいこと
もう少しスマートなコードで結果を得ることが出来ないかをご教授いただきたく、よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー