关于列表的for循环具有重复的值

时间:2019-04-07 11:09:42

标签: python python-3.x for-loop

我正在尝试创建一个for循环,但是我得到了一些不需要的输出:

我的循环示例:

input1 = ['a', 'b', 'c', 'd']
input2 = ['a', 'b', 'c', 'd', 'e']
for i in range(0,4,1)
    for j in range(0,5,1)
    output = input1[i] + "-" + input2[j]
    print(output)

调试后将产生以下结果:

a - a
b - b
c - c
d - d

我不想要它们,因为它将等于零。

有人可以建议我怎么做吗?

3 个答案:

答案 0 :(得分:1)

仅在input1[i]input1[i]不相等时打印输出:

input1 = ['a', 'b', 'c', 'd']
input2 = ['a', 'b', 'c', 'd', 'e']
for i in range(len(input1)):
    for j in range(len(input2)):
        if input1[i] != input2[j]:
            output = input1[i] + "-" + input2[j]
            print(output)

请注意,range(1,4,1)range(1,5,1)是不正确的,因为列表的索引从0开始而不是从1开始。使用range(list)确保列表中的所有元素都被迭代。 / p>

由于您仅从两个列表中进行读取,因此可以使用for element in list语法,该语法可对列表的元素进行迭代,并且更加简洁:

input1 = ['a', 'b', 'c', 'd']
input2 = ['a', 'b', 'c', 'd', 'e']
for i in input1:
    for j in input2:
        if i != j:
            output = i + "-" + j
            print(output)

输出:

a-b
a-c
a-d
a-e
b-a
b-c
b-d
b-e
c-a
c-b
c-d
c-e
d-a
d-b
d-c
d-e

答案 1 :(得分:0)

您可以尝试以下示例代码来排除相同的元素:

input1 = ['a', 'b', 'c', 'd']
input2 = ['a', 'b', 'c', 'd', 'e']
for i in range(1,4,1)
    for j in range(1,5,1)
       if input1[i] != input[j]
          output = input1[i] + "-" + input2[j]
          print(output)

答案 2 :(得分:0)

您可以使用ifinput1[i]input2[j]进行比较,并跳过一些配对

if input1[i] != input2[j]: 
    print(input1[i] + "-" + input2[j]) 

您的代码确实有效,因此我对其进行了更改。

我使用for i in input1而非for i in range(1,4,1)使其更具可读性

input1 = ['a', 'b', 'c', 'd']
input2 = ['a', 'b', 'c', 'd', 'e']

for i in input1:
    for j in input2:
        if i != j:
            print(i + "-" + j)