回答編集履歴

3

バグ修正

2021/01/31 12:41

投稿

ppaul
ppaul

スコア24670

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  for p in s:
14
14
 
15
- Hoge(*p)
15
+ Hoge(p)
16
16
 
17
17
  ```
18
18
 
@@ -34,6 +34,6 @@
34
34
 
35
35
  for p in s:
36
36
 
37
- Hoge(*[d[i] for i in p])
37
+ Hoge([d[i] for i in p])
38
38
 
39
39
  ```

2

バグ修正

2021/01/31 12:41

投稿

ppaul
ppaul

スコア24670

test CHANGED
@@ -34,6 +34,6 @@
34
34
 
35
35
  for p in s:
36
36
 
37
- Hoge(*[d[i] for i in s])
37
+ Hoge(*[d[i] for i in p])
38
38
 
39
39
  ```

1

修正と追加

2021/01/31 12:40

投稿

ppaul
ppaul

スコア24670

test CHANGED
@@ -10,8 +10,30 @@
10
10
 
11
11
  s = set(itertools.permutations([a, a, b, b, c, d, e]))
12
12
 
13
- for p in x:
13
+ for p in s:
14
14
 
15
- Hoge(*x)
15
+ Hoge(*p)
16
16
 
17
17
  ```
18
+
19
+ 上記は、abcdeの中に重複がないという前提を置いています。
20
+
21
+ 重複がある場合やlistのようなmutableなものを含む場合は以下を使ってください。
22
+
23
+
24
+
25
+ ```python
26
+
27
+ import itertools
28
+
29
+
30
+
31
+ d = dict([x for x in enumerate([a, b, c, d, e])])
32
+
33
+ s = set(itertools.permutations([0, 0, 1, 1, 2, 3, 4]))
34
+
35
+ for p in s:
36
+
37
+ Hoge(*[d[i] for i in s])
38
+
39
+ ```