[英]Python For loop not incrementing
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 正常递增并产生正确的 output 但是 j 在三个循环中保持为 0,然后跳转到 3。我不明白这一点。
for a in something
一个是什么而不是索引中包含的内容
例如:
for n in [1, 10, 9, 3]:
print(n)
给
1
10
9
3
你要么想要
for i in range(len(malware))
要么
for i, element in enumerate(malware)
在这一点上,i是恶意软件中的计数和元素.index(i)
在循环中同时需要索引和该索引处的元素时,最后一种方法被认为是最佳实践。
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)
op 已经解决了这个问题,但如果有人想知道或需要一个 TL;Barkin 的评论的 DR,它只是一个小的更正,
代替
for i in malware
for j in clean
和
for i in range(len(malware))
for j in range(len(clean))
最后删除.index() function,并放置i和j。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.