列表值比较 - 用于循环迭代

时间:2016-02-21 14:33:25

标签: python for-loop matrix vector multiplication

我想比较项目值。如果它们相等,我想打印“true”,否则我想打印“false”。我的代码写了结果。

我比较2 "prediction_list"的值的结果lists(test_labels and my_labels的大小应为260,因为我的原始lists(test_labels and my_labels)大小为260.但是,{{1}由于for循环迭代,大小为67600。我该如何纠正?

prediction_list

示例输入和输出:

测试集中的NB分类标签:prediction = [] for i in test_labels: for item in my_labels: if item == int(i): prediction.append("true") else: prediction.append("false") print prediction

test_labels:[1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

预测:['0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n', '0\n']

3 个答案:

答案 0 :(得分:3)

不是循环遍历列表,而是尝试循环遍历某个范围并使用该数字检查该索引中每个列表中每个项目的值。这是代码:

prediction = []

for i in range(0, len(test_labels)):
    if my_labels[i] == test_labels[i]:
        prediction.append("true")
    else:
        prediction.append("false")

print prediction

答案 1 :(得分:3)

如果你确定test_labels和my_labels大小相同,你可以轻松使用“zip”功能:

prediction = []

for x, y in zip(test_labels, my_labels):
    if x == y:
        prediction.append("true")
    else:
        prediction.append("false")

print(prediction)

答案 2 :(得分:1)

我同意@MarkPython,但语法稍微清晰。

prediction = []

for i in range(len(test_labels)):
    if test_labels[i] == my_labels[i]:
        prediction.append("true")
    else:
        prediction.append("false")