回答編集履歴

4

内包表記を使わないコードを追記

2022/06/15 01:18

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -15,3 +15,26 @@
15
15
  print(num_2)
16
16
  ```
17
17
 
18
+ 内包表記を使わないと、以下のようになります。
19
+
20
+ ```python
21
+ from collections import Counter
22
+
23
+ data = [
24
+ ["A", "B", "C", "D", "E", "E"],
25
+ ["C", "D", "E", "A", "B", "B"],
26
+ ["D", "C", "E", "A", "A", "D"],
27
+ ["D", "A", "C", "B", "D", "E"],
28
+ ]
29
+
30
+ num_2 = []
31
+ for count in map(Counter, zip(*data)):
32
+ num_1 = []
33
+ for c in "ABCDE":
34
+ if c in count:
35
+ num_1.append(count[c])
36
+ num_2.append(num_1)
37
+
38
+ print(num_2)
39
+ ```
40
+

3

get を in に変更

2022/06/14 15:00

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -10,7 +10,7 @@
10
10
  ["D", "A", "C", "B", "D", "E"],
11
11
  ]
12
12
 
13
- num_2 = [[count[c] for c in "ABCDE" if count.get(c)]
13
+ num_2 = [[count[c] for c in "ABCDE" if c in count]
14
14
  for count in map(Counter, zip(*data))]
15
15
  print(num_2)
16
16
  ```

2

説明追記

2022/06/14 14:58

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,3 +1,5 @@
1
+ 内包表記を使いたくなってしまいます・・・
2
+
1
3
  ```python
2
4
  from collections import Counter
3
5
 

1

変数名変更

2022/06/14 14:57

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -8,8 +8,8 @@
8
8
  ["D", "A", "C", "B", "D", "E"],
9
9
  ]
10
10
 
11
- num_2 = [[row[c] for c in "ABCDE" if row.get(c)]
11
+ num_2 = [[count[c] for c in "ABCDE" if count.get(c)]
12
- for row in map(Counter, zip(*data))]
12
+ for count in map(Counter, zip(*data))]
13
13
  print(num_2)
14
14
  ```
15
15