clean_offset = len(malware)
tuple_clean = []
tuple_malware = []
for i in malware:
tuple_malware.append([malware.index(i), 0])
print(malware.index(i))
print(tuple_malware)
for j in clean:
tuple_clean.append([(clean_offset + clean.index(j)), 1])
print(clean.index(j))
print(tuple_clean)
import pdb; pdb.set_trace()
training_data_size_mal = 0.8 * len(malware)
training_data_size_clean = 0.8 * len(clean)
i正常增加并产生正确的输出,但是j在三个循环中保持为0,然后跳到3。我不明白这一点。
答案 0 :(得分:1)
for a in something
a是某物所包含的内容,而不是索引
例如:
for n in [1, 10, 9, 3]:
print(n)
给予
1
10
9
3
答案 1 :(得分:1)
你要么想要
for i in range(len(malware))
或
for i, element in enumerate(malware)
此时i是恶意软件的计数和元素。index(i)
在循环中同时需要索引和该索引处的元素时,最后一种方法被认为是最佳实践。
答案 2 :(得分:1)
clean.index(j)
上存在逻辑错误。
Array.index将返回该数组中的第一个匹配索引。
因此,如果有一些相等的变量,将会有一些错误
您可以使用以下代码进行检查。
malware = [1,2,3,4,5,6,7,8,8,8,8,8,2]
clean = [1,2,3,4,4,4,4,4,4,2,4,4,4,4]
clean_offset = len(malware)
tuple_clean = []
tuple_malware = []
for i in malware:
tuple_malware.append([malware.index(i), 0])
print(malware.index(i))
print(tuple_malware)
for j in clean:
tuple_clean.append([(clean_offset + clean.index(j)), 1])
print(clean.index(j))
print(tuple_clean)
training_data_size_mal = 0.8 * len(malware)
training_data_size_clean = 0.8 * len(clean)