Im пытается использовать max() func, чтобы найти максимальное значение в заданном списке. Im, создавая список для данного столбца из txt-файла (представляющий таблицу, каждая строка имеет имя и то же количество столбцов данных). например - John, M, 53,175,8000 (имя, пол, возраст, рост, зарплата) Проблема в том, что я не знаю, будет ли столбец содержать числа или строки. Если столбец содержит целые числа, то он выглядит так (например): ['1', '40', '5', '520', '1025'] В этом случае функция max() сравнивает первая цифра и возвращает неверное значение ('520'). Вот код рецепта - (Все в классе) Первый func. возвращает список столбца. Второй возвращает имя/имена, которые имеют максимальное значение данного столбца.Проблема с использованием max (list)
def get_column(self,colname):
if colname not in self.columns:
raise ValueError('Colname doesnt exists')
col_indx = self.columns.index(colname)+1
col_data = []
for i in range(len(self.names)):
col_data.append(self.data[i][col_indx])
return col_data
def get_row_name_with_max_value(self,colname):
if colname not in self.columns:
raise ValueError('Colname doesnt exists')
col_list = self.get_column(colname)
max_val = max(col_list)
counter = col_list.count(max_val)
max_name = []
k = -1
for i in range(counter):
index = col_list.index(max_val, k+1)
max_name.append(self.data[index][0])
k = index
return ', '.join(max_name)
спасибо большое!
Если есть только строки, что должно быть максимальное значение, возвращаемое? – thefourtheye
более высокое значение..сли говорят, что список выглядит так ['a', 'b', 'c'] - поэтому возвращаемое значение должно быть: c – user3077563