回答編集履歴

1

コメントを追加、スペルミス(overrap→overlap)を修正

2021/03/03 09:44

投稿

NGW
NGW

スコア48

test CHANGED
@@ -2,19 +2,21 @@
2
2
 
3
3
  ``` python
4
4
 
5
- n = 4
5
+ n = 4 # 重ね合わせ対象の1リストに含まれる要素数(サンプルのデータはすべて4個だったので。)
6
6
 
7
7
  new_list=[]
8
8
 
9
- overrap_num = n//2
9
+ overlap_num = n//2 # 重ね合わせのレートが50% (// は、割り切れない場合を考慮して整数にしています)
10
10
 
11
11
  for old in old_list:
12
12
 
13
- if len(new_list) > overrap_num:
13
+ if len(new_list) > overlap_num:
14
14
 
15
- prefix_index = len(new_list) - overrap_num
15
+ prefix_index = len(new_list) - overlap_num # 重ね合わせをしない、すでに決まった先頭部分のインデックスを探査
16
16
 
17
+ # 重ね合わせをしないすでに決まった先頭部分のリスト + 重ね合わせする部分のリスト + 重ね合わせしない追加分のリスト
18
+
17
- new_list = new_list[:prefix_index] + [ new_list[prefix_index + idx] + old[idx] for idx in range(overrap_num)] + old[overrap_num:]
19
+ new_list = new_list[:prefix_index] + [ new_list[prefix_index + idx] + old[idx] for idx in range(overlap_num)] + old[overlap_num:]
18
20
 
19
21
  else:
20
22