#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. Это правда, но мне нравится это явно на случай, если я не знаю, какой элемент используется для сортировки