回答編集履歴

4

追記

2018/08/15 09:41

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -36,6 +36,8 @@
36
36
 
37
37
  わざわざlenして潰した情報を観察しても意味が無いです。
38
38
 
39
+ リスト長が合わないのは、リストが理想と離れている副次的な影響に過ぎません。
40
+
39
41
 
40
42
 
41
43
  別解
@@ -58,6 +60,8 @@
58
60
 
59
61
  # A = [functools.reduce(lambda l1, l2: l1 + l2, inner) for inner in data] でも可
60
62
 
63
+ # A = [list(itertools.chain(*inner)) for inner in data] でも可
64
+
61
65
 
62
66
 
63
67
  B = [e[0] for e in data]

3

追記

2018/08/15 09:41

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- Aにtmp1を加えるタイミングが変です。
5
+ Aにtmp1を加えるタイミングが変です。次のように書けば問題なく動作します。
6
6
 
7
7
  ```Python
8
8
 
@@ -22,9 +22,23 @@
22
22
 
23
23
 
24
24
 
25
+ 正直ご提示のコードの処理は面倒で追っていないのですが、
26
+
25
- のように書けば問題く動作ます
27
+ A値が次のようになっていたことから解決策はすぐに見当がつきま
28
+
29
+ ```Python
30
+
31
+ [['Where', 'is', 'Mary', 'Bathroom', 'is'], ['Where', 'is', 'Mary', 'Bathroom', 'is'], ['Bob', 'is', '23', 'Oh'], ['Bob', 'is', '23', 'Oh']]
32
+
33
+ ```
26
34
 
27
35
 
36
+
37
+ わざわざlenして潰した情報を観察しても意味が無いです。
38
+
39
+
40
+
41
+ 別解
28
42
 
29
43
  ---
30
44
 

2

追記

2018/08/15 09:32

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -42,7 +42,13 @@
42
42
 
43
43
  A = [sum(inner, []) for inner in data]
44
44
 
45
+ # A = [functools.reduce(lambda l1, l2: l1 + l2, inner) for inner in data] でも可
46
+
47
+
48
+
45
49
  B = [e[0] for e in data]
50
+
51
+ # B = [ef for ef, *_ in data] でも可
46
52
 
47
53
 
48
54
 

1

追記

2018/08/15 09:29

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -1,3 +1,33 @@
1
+ > なぜ、意図した挙動にならないのでしょうか?
2
+
3
+
4
+
5
+ Aにtmp1を加えるタイミングが変です。
6
+
7
+ ```Python
8
+
9
+ for i in range(len(data)):
10
+
11
+ tmp1 = []
12
+
13
+ for j in range(len(data[i])):
14
+
15
+ for k in range(len(data[i][j])):
16
+
17
+ tmp1.append(data[i][j][k])
18
+
19
+ A.append(tmp1)
20
+
21
+ ```
22
+
23
+
24
+
25
+ このように書けば問題なく動作します。
26
+
27
+
28
+
29
+ ---
30
+
1
31
  > Aは、[["Where","is","Mary","Bathroom","is"],["Bob","is","23","Oh"]] となり、Bは[["Where","is","Mary"],["Bob","is","23"]] となるようにしたいです
2
32
 
3
33