循环迭代的列表值比较

2024-04-23 16:51:39 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我的结果"prediction_list"比较了2lists(test_labels and my_labels的值,结果的大小应该是260,因为我原来的lists(test_labels and my_labels)的大小是260。但是,由于for循环迭代,我的prediction_list的大小为67600。我该怎么纠正呢?你知道吗

prediction = []

for i in test_labels:
    for item in my_labels:
        if item == int(i):
            prediction.append("true")
        else:
            prediction.append("false")

print prediction

输入和输出示例:

测试集中的NB分类器标签:[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']

预测:['false', 'false', 'false', 'true', 'false', 'false', 'false', 'true', 'false', 'false', 'false', 'false', 'false', 'false', 'false', 'false', 'false', 'false', 'false', 'false', 'false', 'false', 'false', 'false', 'false'...]


Tags: and项目代码intestfalsetruefor
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

我同意@MarkPython,但是有一个稍微简洁的语法。你知道吗

prediction = []

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

如果您确定test\u标签和my\u标签大小相同,您可以轻松使用“zip”功能:

prediction = []

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

print(prediction)

相关问题 更多 >