質問編集履歴

3

誤字

2019/08/09 07:57

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -112,7 +112,7 @@
112
112
 
113
113
  for create_seq_1 in range (0,seq_num):
114
114
 
115
- seq = column_list[create_seq_1][create_seq]
115
+ seq = patarn_list[create_seq_1][create_seq]
116
116
 
117
117
  seq_unit += seq
118
118
 

2

誤字

2019/08/09 07:56

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- ###時間のかかる以下のコードを改善したい↓
7
+ ###時間のかかる以下のコードを改善したいです
8
8
 
9
9
  ```python3
10
10
 

1

追記。変数の訂正

2019/08/09 07:33

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,14 @@
1
+ #※すみません、質問内容に記載したコードの変数等が意味をなしていないので変更しました。あと、さらなる問題が発覚したので追記しました。
2
+
3
+
4
+
5
+
6
+
1
7
  ###時間のかかる以下のコードを改善したい↓
2
8
 
3
9
  ```python3
10
+
11
+
4
12
 
5
13
  import more_itertools
6
14
 
@@ -10,25 +18,27 @@
10
18
 
11
19
  gen = more_itertools.distinct_permutations(amino_acid)
12
20
 
13
- a = list(gen)
21
+ all_patarn = list(gen)
14
22
 
15
- b = 0
16
23
 
17
- for index in a:
18
24
 
19
- string = ""
25
+ patarn_list = []
20
26
 
21
- for index_1 in index:
22
27
 
23
- string += index_1
24
28
 
25
- print(string)
29
+ for each_patarn in all_patarn:
26
30
 
27
- string = ""
31
+ string_aminoacid = ""
28
32
 
29
- b += 1
33
+ for each_patarn_word in each_patarn:
30
34
 
35
+ string_aminoacid += each_patarn_word
36
+
31
- print(b)
37
+ print(string_aminoacid)
38
+
39
+ patarn_list.append(string_aminoacid)
40
+
41
+ string_aminoacid = ""
32
42
 
33
43
  ```
34
44
 
@@ -39,3 +49,77 @@
39
49
  もっと、高速化するためにforを2回繰り返しているところを改善したいのですが、どのようにすると良いでしょうか?
40
50
 
41
51
  ご教授ください。
52
+
53
+
54
+
55
+ さらにここから、以下のコードに完成したデータを代入する予定です。
56
+
57
+ amino_acidは21個の文字列でできているため、14,244,300*21通りの処理をすることとなり、かなり遅くなってしまうことが確実です。
58
+
59
+
60
+
61
+ ```Python3
62
+
63
+ import more_itertools
64
+
65
+
66
+
67
+ amino_acid = 'L'*4 + 'A'*4 + '-'*13
68
+
69
+ gen = more_itertools.distinct_permutations(amino_acid)
70
+
71
+ all_patarn = list(gen)
72
+
73
+
74
+
75
+ patarn_list = []
76
+
77
+
78
+
79
+ for each_patarn in all_patarn:
80
+
81
+ string_aminoacid = ""
82
+
83
+ for each_patarn_word in each_patarn:
84
+
85
+ string_aminoacid += each_patarn_word
86
+
87
+ # print(string_aminoacid)
88
+
89
+ patarn_list.append(string_aminoacid)
90
+
91
+ string_aminoacid = ""
92
+
93
+
94
+
95
+ ↑上記コードと同様
96
+
97
+ -------------------------------------------
98
+
99
+ ↓上記の結果を利用するコード
100
+
101
+
102
+
103
+ seq_num_1 = len(patarn_list[0])
104
+
105
+ seq_num = len(patarn_list)
106
+
107
+ seq_list = []
108
+
109
+ for create_seq in range (0,seq_num_1):
110
+
111
+ seq_unit = ""
112
+
113
+ for create_seq_1 in range (0,seq_num):
114
+
115
+ seq = column_list[create_seq_1][create_seq]
116
+
117
+ seq_unit += seq
118
+
119
+ seq_list.append(seq_unit)
120
+
121
+ seq_unit = ""
122
+
123
+ print(seq_list)
124
+
125
+ ```