Отсортировать список, используя пользовательскую функцию с несколькими параметрами [дубликат] ⇐ Python
-
Anonymous
Отсортировать список, используя пользовательскую функцию с несколькими параметрами [дубликат]
Я пытаюсь отсортировать список с помощью пользовательской функции. Если функция имеет только один параметр, это нормально. Я не знаю, как быть, если функция имеет 2 параметра.
Например, когда функция имеет только один параметр.
def sort_by_well_range(col): # формат столбца: avgDTS_1100_1200 a=col.split('_')[1:] # удалить строку avgDTS, оставить только диапазон глубины a=[float(col) for col in a] # конвертируем строку в число с плавающей запятой middle_глубина=среднее(а) # печать(средняя_глубина) вернуть среднюю_глубину a=['avgDTS_1100_1200','avgDTS_900_1000','avgDTS_1300_1400','avgDTS_800_850'] b=sorted(a,key=sort_by_well_range,reverse=False) ['avgDTS_800_850', 'avgDTS_900_1000', 'avgDTS_1100_1200', 'avgDTS_1300_1400'] Сейчас я делаю такую функцию с двумя параметрами, потом у меня возникла ошибка, как ее решить? Спасибо
def sort_by_well_range_1(col,start=1): # формат столбца: avgDTS_1100_1200 a=col.split('_')[start:] # удалить строку avgDTS, оставить только диапазон глубины a=[float(col) for col in a] # конвертируем строку в число с плавающей запятой middle_глубина=среднее(а) # печать(средняя_глубина) вернуть среднюю_глубину a=['influx_oil_1100_1200','influx_oil_900_1000','influx_oil_1300_1400','influx_oil_800_850'] b=sorted(a,key=sort_by_well_range_1(start=2),reverse=False) -------------------------------------------------- ------------------------- ТипОшибка ----> 2 b=sorted(a,key=sort_by_well_range_1(start=2),reverse=False) 3 б Ошибка типа: sort_by_well_range_1() отсутствует 1 обязательный позиционный аргумент: 'col'
Я пытаюсь отсортировать список с помощью пользовательской функции. Если функция имеет только один параметр, это нормально. Я не знаю, как быть, если функция имеет 2 параметра.
Например, когда функция имеет только один параметр.
def sort_by_well_range(col): # формат столбца: avgDTS_1100_1200 a=col.split('_')[1:] # удалить строку avgDTS, оставить только диапазон глубины a=[float(col) for col in a] # конвертируем строку в число с плавающей запятой middle_глубина=среднее(а) # печать(средняя_глубина) вернуть среднюю_глубину a=['avgDTS_1100_1200','avgDTS_900_1000','avgDTS_1300_1400','avgDTS_800_850'] b=sorted(a,key=sort_by_well_range,reverse=False) ['avgDTS_800_850', 'avgDTS_900_1000', 'avgDTS_1100_1200', 'avgDTS_1300_1400'] Сейчас я делаю такую функцию с двумя параметрами, потом у меня возникла ошибка, как ее решить? Спасибо
def sort_by_well_range_1(col,start=1): # формат столбца: avgDTS_1100_1200 a=col.split('_')[start:] # удалить строку avgDTS, оставить только диапазон глубины a=[float(col) for col in a] # конвертируем строку в число с плавающей запятой middle_глубина=среднее(а) # печать(средняя_глубина) вернуть среднюю_глубину a=['influx_oil_1100_1200','influx_oil_900_1000','influx_oil_1300_1400','influx_oil_800_850'] b=sorted(a,key=sort_by_well_range_1(start=2),reverse=False) -------------------------------------------------- ------------------------- ТипОшибка ----> 2 b=sorted(a,key=sort_by_well_range_1(start=2),reverse=False) 3 б Ошибка типа: sort_by_well_range_1() отсутствует 1 обязательный позиционный аргумент: 'col'
Мобильная версия