簡體   English   中英

Python:比較列表中的值

[英]Python: Comparing values within a list

我的 python 程序中有一個列表,我想將列表中的每個值與其他所有值進行比較,如果這些值彼此相等,則在列表中打印迭代值,例如年齡 [1]。 這是到目前為止的代碼

ages = [16, 16, 15]
for i in ages:
    for x in ages:
        if i == x:
            print(i, "=", x)

目前這給了我一個 output

16 = 16
16 = 16
16 = 16
16 = 16
15 = 15

我知道它正在比較列表中的每個值,而沒有省略已經處理的值,並且打印 function 僅給出迭代的當前值。 有什么解決辦法嗎?

這不會重復任何比較

ages = [16, 16, 15]
l = len(ages)
for i in range(l):
    for x in range(i+1,l): # range(i+1,l) makes sure that you don't compare with itself OR repeat any comparisons
        if ages[i] == ages[x]:
            #print(ages[i], "=", ages[x])
            print("ages[{}] = ages[{}]".format(i, x))
ages[0] = ages[1]

一種方法是使用enumerate

ages = [16, 16, 15]
for i, x in enumerate(ages):
    for j, y in enumerate(ages[i+1:]):
        if x == y:
            print(f"{i}/{i + 1 + j}: {x}")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM