回答編集履歴

3

コード修正

2020/02/03 14:55

投稿

can110
can110

スコア38266

test CHANGED
@@ -1,8 +1,6 @@
1
1
  `itertools.combinations`を使うと、ある集合から任意の2個をとる組み合わせを簡単に生成できます。
2
2
 
3
3
  ```Python
4
-
5
-
6
4
 
7
5
  import itertools
8
6
 
@@ -13,6 +11,14 @@
13
11
  s = """A社、B社、C社
14
12
 
15
13
  2
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
16
22
 
17
23
  A社、E社
18
24
 
@@ -57,6 +63,8 @@
57
63
  data_lines = data_lines.split('\n')
58
64
 
59
65
  for line in data_lines:
66
+
67
+ line = line.strip() # 前後の空白除去
60
68
 
61
69
  if line:
62
70
 

2

コード修正

2020/02/03 14:55

投稿

can110
can110

スコア38266

test CHANGED
@@ -1,6 +1,8 @@
1
1
  `itertools.combinations`を使うと、ある集合から任意の2個をとる組み合わせを簡単に生成できます。
2
2
 
3
3
  ```Python
4
+
5
+
4
6
 
5
7
  import itertools
6
8
 
@@ -8,7 +10,33 @@
8
10
 
9
11
  from io import StringIO
10
12
 
11
- s = 'A社、B社、C社\n2\nA社、E社\n2\nD社、F社、G社、I社\n2\nK社、J社、A社\n1\nA社、E社、G社、H社\n1'
13
+ s = """A社、B社、C社
14
+
15
+ 2
16
+
17
+ A社、E社
18
+
19
+ 2
20
+
21
+ D社、F社、G社、I社
22
+
23
+ 2
24
+
25
+ K社、J社、A社
26
+
27
+ 1
28
+
29
+ A社、E社、G社、H社
30
+
31
+ 1
32
+
33
+ A社
34
+
35
+ 1
36
+
37
+ A社、E社
38
+
39
+ 2"""
12
40
 
13
41
  data_lines = StringIO(s).read()
14
42
 
@@ -38,7 +66,7 @@
38
66
 
39
67
  s = ' '.join(c)
40
68
 
41
- print(s) # ファイルに出力するならf.writeなりする
69
+ print(s)
42
70
 
43
71
  """
44
72
 
@@ -80,6 +108,8 @@
80
108
 
81
109
  G社 H社
82
110
 
111
+ A社 E社
112
+
83
113
  """
84
114
 
85
115
  ```

1

コード修正

2020/02/03 13:58

投稿

can110
can110

スコア38266

test CHANGED
@@ -6,59 +6,79 @@
6
6
 
7
7
 
8
8
 
9
+ from io import StringIO
10
+
9
- links = [['A', 'B', 'C'], ['A', 'E'], ['D', 'F', 'G', 'I'], ['K', 'J', 'A'], ['A', 'E', 'G', 'H']]
11
+ s = 'A社、B社、C社\n2\nA社、E社\n2\nD社、F社、G社、I社\n2\nK社、J社、A社\n1\nA社、E社、G社、H社\n1'
12
+
13
+ data_lines = StringIO(s).read()
10
14
 
11
15
 
12
16
 
13
- n = 1
17
+ data_lines = data_lines.replace("2", "")
14
18
 
15
- for l in links:
19
+ data_lines = data_lines.replace("1", "")
16
20
 
17
- for c in itertools.combinations(l,2):
21
+ data_lines = data_lines.replace("、", " ")
18
22
 
19
- print(n, *c)
20
23
 
24
+
25
+ # ↑までは質問コードと同じでよい。
26
+
27
+
28
+
29
+ data_lines = data_lines.split('\n')
30
+
31
+ for line in data_lines:
32
+
21
- n += 1
33
+ if line:
34
+
35
+ line = line.split(' ')
36
+
37
+ for c in itertools.combinations(line,2):
38
+
39
+ s = ' '.join(c)
40
+
41
+ print(s) # ファイルに出力するならf.writeなりする
22
42
 
23
43
  """
24
44
 
25
- 1 A B
45
+ A B
26
46
 
27
- 2 A C
47
+ A C
28
48
 
29
- 3 B C
49
+ B C
30
50
 
31
- 4 A E
51
+ A E
32
52
 
33
- 5 D F
53
+ D F
34
54
 
35
- 6 D G
55
+ D G
36
56
 
37
- 7 D I
57
+ D I
38
58
 
39
- 8 F G
59
+ F G
40
60
 
41
- 9 F I
61
+ F I
42
62
 
43
- 10 G I
63
+ G I
44
64
 
45
- 11 K J
65
+ K J
46
66
 
47
- 12 K A
67
+ K A
48
68
 
49
- 13 J A
69
+ J A
50
70
 
51
- 14 A E
71
+ A E
52
72
 
53
- 15 A G
73
+ A G
54
74
 
55
- 16 A H
75
+ A H
56
76
 
57
- 17 E G
77
+ E G
58
78
 
59
- 18 E H
79
+ E H
60
80
 
61
- 19 G H
81
+ G H
62
82
 
63
83
  """
64
84