как заархивировать не повторяющиеся файлы

#python #list #zip

#python #Список #zip

Вопрос:

Я хочу отобразить максимальные значения для Африки за [1995-2001] и [2002-2008] и годы, в которые они произошли. мой текущий код выглядит следующим образом:

 year = [1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008]
africa = [1045,928,947,987,1092,1764,1266,1444,1764,2313,2989,3668,4146,7293]
max1 = max(africa[0],africa[1],africa[2],africa[3],africa[4],africa[5],africa[6])

max2 = max(africa[7],africa[8],africa[9],africa[10],africa[11],africa[12],africa[13])

for Max1, Year in zip (max1, year):
    print("The maximum export value to Africa over [1995-2001] was {Max1} and the year it occurred was {Year}")
for Max2, Year in zip (max2, year):
    print("The maximum export value to Africa over [2002-2008] was {Max2} and the year it occurred was {Year}")
 

В настоящее время я получаю ошибку TypeError, потому что zip-аргумент # 1 не поддерживает итерацию. Есть ли способ заархивировать их или лучший способ сделать это?

Ответ №1:

Для этого вам не нужен zip, так как вы производите вычисления max . zip принимает итерируемые, но max1 или max2 не является итерируемым, это целое число. Вам нужно index это правильно. Также убедитесь s-string в правильном использовании

 year = [1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008]
africa = [1045,928,947,987,1092,1764,1266,1444,1764,2313,2989,3668,4146,7293]
max1 = max(africa[0:7])

max2 = max(africa[7:])

# for Max1, Year in zip(max1, year):
print(f"The maximum export value to Africa over [1995-2001] was {max1} and the year it occurred was {year[africa.index(max1)]}")
# for Max2, Year in zip(max2, year):
print(f"The maximum export value to Africa over [2002-2008] was {max2} and the year it occurred was {year[africa.index(max2)]}")
 
 The maximum export value to Africa over [1995-2001] was 1764 and the year it occurred was 2000
The maximum export value to Africa over [2002-2008] was 7293 and the year it occurred was 2008
 

Но если вы zip все равно хотите использовать

 year = [1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008]
africa = [1045,928,947,987,1092,1764,1266,1444,1764,2313,2989,3668,4146,7293]

data = list(zip(year, africa))

m1 = max(data[0:7], key=lambda x: x[1])
m2 = max(data[7: ], key=lambda x: x[1])

print(f"The maximum export value to Africa over [1995-2001] was {m1[1]} and the year it occurred was {m1[0]}")

print(f"The maximum export value to Africa over [2002-2008] was {m2[1]} and the year it occurred was {m2[0]}")
 
 The maximum export value to Africa over [1995-2001] was 1764 and the year it occurred was 2000
The maximum export value to Africa over [2002-2008] was 7293 and the year it occurred was 2008
 

Комментарии:

1. Это правда, но мне нравится это явно на случай, если я не знаю, какой элемент используется для сортировки