Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 3, 2013 11:17:12

GGnoob
Зарегистрирован: 2013-10-01
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Python 3 Удаление лишнего символа у каждого элемента списка

Всем привет!
Возникла необходимость удалить у каждого элемента в списке определенный знак. Например,

l = ['4.6$', '5.2$', '3$']
. Мне нужно получить список из элементов float. Как это можно сделать?
Сам список я создаю из файла. в котором имеется такой столбец. Может быть можно создать этот список сразу без лишнего знака?

Отредактировано GGnoob (Окт. 3, 2013 11:43:12)

Офлайн

#2 Окт. 3, 2013 11:30:09

wbt
Зарегистрирован: 2013-08-13
Сообщения: 143
Репутация: +  6  -
Профиль   Отправить e-mail  

Python 3 Удаление лишнего символа у каждого элемента списка

ничего не понял. может быть, что-то типа так:

[float(x.replace('l =','')) for x in lst]



Бейсик - не порок, Гвидо - не пророк

Отредактировано wbt (Окт. 3, 2013 11:30:40)

Офлайн

#3 Окт. 3, 2013 11:44:02

GGnoob
Зарегистрирован: 2013-10-01
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Python 3 Удаление лишнего символа у каждого элемента списка

wbt
ничего не понял. может быть, что-то типа так:
Не заметил, что пример не отпечатался . Теперь думаю намного яснее?)

Офлайн

#4 Окт. 3, 2013 11:59:30

jcrow
От:
Зарегистрирован: 2011-10-31
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Python 3 Удаление лишнего символа у каждого элемента списка

[float(x[:-1]) for x in l]
оно?




Подпись - это небольшая приписка (хи-хи).

Офлайн

#5 Окт. 3, 2013 12:18:17

GGnoob
Зарегистрирован: 2013-10-01
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Python 3 Удаление лишнего символа у каждого элемента списка

jcrow
[float(x) for x in l]

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

Офлайн

#6 Окт. 3, 2013 12:47:20

wbt
Зарегистрирован: 2013-08-13
Сообщения: 143
Репутация: +  6  -
Профиль   Отправить e-mail  

Python 3 Удаление лишнего символа у каждого элемента списка

> Как подобное можно реализовать?

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

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

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

ну а в случае списка, просто
x[0], x[1]
или какой надо



Бейсик - не порок, Гвидо - не пророк

Отредактировано wbt (Окт. 3, 2013 12:47:37)

Офлайн

#7 Окт. 3, 2013 12:57:19

jcrow
От:
Зарегистрирован: 2011-10-31
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Python 3 Удаление лишнего символа у каждого элемента списка

wbt
> или какой надо
Последний, скорее всего:
sorted(big_dict, key=lambda x: (x['cena'], x['comis']))[-1:]




Подпись - это небольшая приписка (хи-хи).

Офлайн

#8 Окт. 3, 2013 13:40:51

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Python 3 Удаление лишнего символа у каждого элемента списка

wbt
Сделать сортировку со своей функцией
можно функцией max найти наибольшее, если таких элементов больше 1, то найти наивысшую комиссию



Отредактировано Budulianin (Окт. 3, 2013 13:42:34)

Офлайн

#9 Окт. 3, 2013 14:26:29

GGnoob
Зарегистрирован: 2013-10-01
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Python 3 Удаление лишнего символа у каждого элемента списка

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

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

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

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

Офлайн

#10 Окт. 3, 2013 15:24:38

wbt
Зарегистрирован: 2013-08-13
Сообщения: 143
Репутация: +  6  -
Профиль   Отправить e-mail  

Python 3 Удаление лишнего символа у каждого элемента списка

А не могли бы объяснить словами подобную запись?) Честно сказать, не до конца улавоиваю логики.

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

big_dict - словарь

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

lambda x: (a,b) - кортеж, который возвращается, первым значением идёт цена, вторым - комиссия. По этому принципу они и будут сортироваться



Бейсик - не порок, Гвидо - не пророк

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version