Найти - Пользователи
Полная версия: Python 3 Удаление лишнего символа у каждого элемента списка
Начало » Python для новичков » Python 3 Удаление лишнего символа у каждого элемента списка
1 2 3 4
GGnoob
Всем привет!
Возникла необходимость удалить у каждого элемента в списке определенный знак. Например,
l = ['4.6$', '5.2$', '3$']
. Мне нужно получить список из элементов float. Как это можно сделать?
Сам список я создаю из файла. в котором имеется такой столбец. Может быть можно создать этот список сразу без лишнего знака?
wbt
ничего не понял. может быть, что-то типа так:

[float(x.replace('l =','')) for x in lst]
GGnoob
wbt
ничего не понял. может быть, что-то типа так:
Не заметил, что пример не отпечатался . Теперь думаю намного яснее?)
jcrow
[float(x[:-1]) for x in l]
оно?
GGnoob
jcrow
[float(x) for x in l]

оно?
Да, оно. Спасибо!
Есть еще один вопрос немного по другой теме: в файле имеется еще один столбец с % комиссий. Мне нужно найти такую строку в файле, у которой будет наивысшее значение в столбце “цена”, но если наивысших значений несколько, то нужно найти еще наивысшую комиссию (т.е. искомой будет строка в файле и с наивысшей ценой, и с наивысшей комиссией, если наивысших цен несколько). Как подобное можно реализовать?
wbt
> Как подобное можно реализовать?

Сделать сортировку со своей функцией (обычной или lambda), и потом снять верхний элемент списка.

В случае словаря это будет что-то типа такого:

sorted(big_dict, key=lambda x: (x['cena'], x['comis']))

ну а в случае списка, просто
x[0], x[1]
или какой надо
jcrow
wbt
> или какой надо
Последний, скорее всего:
sorted(big_dict, key=lambda x: (x['cena'], x['comis']))[-1:]
Budulianin
wbt
Сделать сортировку со своей функцией
можно функцией max найти наибольшее, если таких элементов больше 1, то найти наивысшую комиссию
GGnoob
wbt
Сделать сортировку со своей функцией (обычной или lambda), и потом снять верхний элемент списка.

В случае словаря это будет что-то типа такого:

sorted(big_dict, key=lambda x: (x, x))
А не могли бы объяснить словами подобную запись?) Честно сказать, не до конца улавоиваю логики.

Budulianin
можно функцией max найти наибольшее, если таких элементов больше 1, то найти наивысшую комиссию
А как найти наивысшую комиссию, и при этом запомнить нужную строку?
wbt
А не могли бы объяснить словами подобную запись?) Честно сказать, не до конца улавоиваю логики.

sorted - сортировка

big_dict - словарь

key = функция для ключа. можно напсисать функцию, а можно использовать лямбду

lambda x: (a,b) - кортеж, который возвращается, первым значением идёт цена, вторым - комиссия. По этому принципу они и будут сортироваться
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB