簡體   English   中英

為什么不打印沒有重復元組的元組列表?

[英]Why does it not print a list of tuples with no repeated tuples?

因此,我做了一個遍歷元組列表的函數,其中包含汽車,城市mpg和高速公路mpg的制造商。

def maker(mileage_list):
    maker_list = []
    for line in mileage_list:
        if line[2] not in maker_list:
            maker_tuple = (line[2],int(line[0]),int(line[1]))
            maker_list.append(maker_tuple)
    return maker_list

如果在哪里

mileage_list = [('DODGE', 13, 18), ('DODGE', 16, 22), 
                ('DODGE', 16, 22), ('DODGE', 16, 21), 
                ('FORD', 16, 24), ('FORD', 20, 26), 
                ('FORD', 22, 28), ('FORD', 18, 24), 
                ('FORD', 34, 30), ('FORD', 12, 18)]

它僅應打印maker_list =[('DODGE',13,18),('FORD',16,24)]但仍會打印出原始輸入。

line[2]永遠不會在mileage_list因為它是一個字符串,而mileage_list中的項目是元組,並且兩者永遠不會相等。 因此,它將始終添加每個項目。 另外, line[2]是您的高速公路MPG(作為字符串),而不是制造商,因此,即使按您想要的方式工作,它仍然會有很多重復項。

我將使用一個單獨的set來跟蹤您所看到的制造商。

def maker(mileage_list):
    maker_set = set()
    maker_list = []
    for maker, city_mpg, hwy_mpg in mileage_list:
        if maker not in maker_set:
            maker_list.append((maker, int(city_mpg), int(hwy_mpg))
            maker_set.add(maker)
    return maker_list

暫無
暫無

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

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