teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

コード修正

2020/02/03 14:55

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -1,11 +1,14 @@
1
1
  `itertools.combinations`を使うと、ある集合から任意の2個をとる組み合わせを簡単に生成できます。
2
2
  ```Python
3
-
4
3
  import itertools
5
4
 
6
5
  from io import StringIO
7
6
  s = """A社、B社、C社
8
7
  2
8
+
9
+
10
+
11
+
9
12
  A社、E社
10
13
  2
11
14
  D社、F社、G社、I社
@@ -28,6 +31,7 @@
28
31
 
29
32
  data_lines = data_lines.split('\n')
30
33
  for line in data_lines:
34
+ line = line.strip() # 前後の空白除去
31
35
  if line:
32
36
  line = line.split(' ')
33
37
  for c in itertools.combinations(line,2):

2

コード修正

2020/02/03 14:55

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -1,9 +1,23 @@
1
1
  `itertools.combinations`を使うと、ある集合から任意の2個をとる組み合わせを簡単に生成できます。
2
2
  ```Python
3
+
3
4
  import itertools
4
5
 
5
6
  from io import StringIO
6
- s = 'A社、B社、C社\n2\nA社、E社\n2\nD社、F社、G社、I社\n2\nK社、J社、A社\n1\nA社、E社、G社、H社\n1'
7
+ s = """A社、B社、C社
8
+ 2
9
+ A社、E社
10
+ 2
11
+ D社、F社、G社、I社
12
+ 2
13
+ K社、J社、A社
14
+ 1
15
+ A社、E社、G社、H社
16
+ 1
17
+ A社
18
+ 1
19
+ A社、E社
20
+ 2"""
7
21
  data_lines = StringIO(s).read()
8
22
 
9
23
  data_lines = data_lines.replace("2", "")
@@ -18,7 +32,7 @@
18
32
  line = line.split(' ')
19
33
  for c in itertools.combinations(line,2):
20
34
  s = ' '.join(c)
21
- print(s) # ファイルに出力するならf.writeなりする
35
+ print(s)
22
36
  """
23
37
  A社 B社
24
38
  A社 C社
@@ -39,5 +53,6 @@
39
53
  E社 G社
40
54
  E社 H社
41
55
  G社 H社
56
+ A社 E社
42
57
  """
43
58
  ```

1

コード修正

2020/02/03 13:58

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -2,32 +2,42 @@
2
2
  ```Python
3
3
  import itertools
4
4
 
5
+ from io import StringIO
5
- links = [['A', 'B', 'C'], ['A', 'E'], ['D', 'F', 'G', 'I'], ['K', 'J', 'A'], ['A', 'E', 'G', 'H']]
6
+ s = 'A社、B社、C社\n2\nA社、E社\n2\nD社、F社、G社、I社\n2\nK社、J社、A社\n1\nA社、E社、G社、H社\n1'
7
+ data_lines = StringIO(s).read()
6
8
 
9
+ data_lines = data_lines.replace("2", "")
10
+ data_lines = data_lines.replace("1", "")
11
+ data_lines = data_lines.replace("、", " ")
12
+
7
- n = 1
13
+ # ↑までは質問コードと同じでよい。
14
+
15
+ data_lines = data_lines.split('\n')
8
- for l in links:
16
+ for line in data_lines:
17
+ if line:
18
+ line = line.split(' ')
9
- for c in itertools.combinations(l,2):
19
+ for c in itertools.combinations(line,2):
20
+ s = ' '.join(c)
10
- print(n, *c)
21
+ print(s) # ファイルに出力するならf.writeなりする
11
- n += 1
12
22
  """
13
- 1 A B
23
+ A B
14
- 2 A C
24
+ A C
15
- 3 B C
25
+ B C
16
- 4 A E
26
+ A E
17
- 5 D F
27
+ D F
18
- 6 D G
19
- 7 D I
20
- 8 F G
21
- 9 F I
22
- 10 G I
28
+ D社 G
23
- 11 K J
29
+ D社 I社
24
- 12 K A
30
+ F社 G社
31
+ F社 I社
32
+ G社 I社
25
- 13 J A
33
+ K社 J
26
- 14 A E
34
+ K社 A
27
- 15 A G
35
+ J社 A
28
- 16 A H
29
- 17 E G
36
+ A社 E
30
- 18 E H
31
- 19 G H
37
+ A社 G
38
+ A社 H社
39
+ E社 G社
40
+ E社 H社
41
+ G社 H社
32
42
  """
33
43
  ```