[英]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.