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

回答編集履歴

4

追記

2020/09/05 11:08

投稿

jeanbiego
jeanbiego

スコア3966

answer CHANGED
@@ -9,4 +9,26 @@
9
9
  return list(d_set)
10
10
  intersection([1,2,4],[2,2,3,5])
11
11
  # [2]
12
+ ```
13
+
14
+ # 追記
15
+ set使わないver
16
+ ```python3
17
+ def intersection(n1,n2):
18
+ i = 0
19
+ lst = []
20
+ for j in n2:
21
+ if (j in n1) and not(j in lst):
22
+ lst.append(j)
23
+ return lst
24
+ intersection([1,2,4],[2,2,3,5])
25
+ # [2]
26
+ ```
27
+
28
+ LouiS0616さんのコード、これが最もスマート
29
+ ```python3
30
+ def intersection(n1,n2):
31
+ return list(set(n1)&set(n2))
32
+ intersection([1,2,4],[2,2,3,5])
33
+ # [2]
12
34
  ```

3

コード修正

2020/09/05 11:08

投稿

jeanbiego
jeanbiego

スコア3966

answer CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  ```python3
4
4
  def intersection(n1,n2):
5
- i = 0
6
5
  d_set = set()
7
6
  for j in n2:
8
7
  if j in n1:

2

コード修正

2020/09/05 09:51

投稿

jeanbiego
jeanbiego

スコア3966

answer CHANGED
@@ -9,5 +9,5 @@
9
9
  d_set.add(j)
10
10
  return list(d_set)
11
11
  intersection([1,2,4],[2,2,3,5])
12
- # [2, 3, 5]
12
+ # [2]
13
13
  ```

1

修正

2020/09/05 09:51

投稿

jeanbiego
jeanbiego

スコア3966

answer CHANGED
@@ -1,15 +1,12 @@
1
- 色々ありそうですが、集計先をsetにしとくという手段で書いてみました。(※setは重複を自動でなくしてくれます)
1
+ 色々ありそうですが、n2の要素だけforで回してn1に入っているか判定、その集計先をsetにしとくという手段で書いてみました。(※setは重複を自動でなくしてくれます)
2
2
 
3
3
  ```python3
4
4
  def intersection(n1,n2):
5
5
  i = 0
6
6
  d_set = set()
7
- for i in n1:
8
- for j in n2:
7
+ for j in n2:
9
- if j in range(i):
8
+ if j in n1:
10
- d_set.add(j)
9
+ d_set.add(j)
11
- i += 1
12
-
13
10
  return list(d_set)
14
11
  intersection([1,2,4],[2,2,3,5])
15
12
  # [2, 3, 5]