#python #arrays #regex #list #tuples
Вопрос:
у меня есть следующий список
data = [ '0.1%',
'hello',
'how are you guys',
'0.1%',
'1%',
'0.1%',
'1%', ]
я попробовал это :
cell = float(data.rstrip("%"))
я хочу удалить 1% и 0,1%
ожидаемый результат:
data = [ 'hello','how are you guys' ]
Комментарии:
1. Итак, что вы пробовали? Это выглядит очень просто, если вы знаете, как работает цикл или как работает понимание списка. Вы уже проходили учебник по python.org?
2.
[x for x in data if '%' not in x]
?3.
rstrip
работает только с одной строкой, а не со списком строк. Вероятно, только уpandas.DataFrame
вас могло получитьсяdataframe.str.rstrip('%')
удалить его из всех элементов в таблице. В чистом Python для этого нужно использоватьfor
-loop.
Ответ №1:
Вот, пожалуйста:
new_list = [d for d in data if d not in ['0.1%', '1%']]
Ответ №2:
Если вы хотите использовать что-то более общее:
result = []
for i in data:
try:
float(i.strip('%'))
except:
result.append(i)
выход:
['hello', 'how are you guys']
Ответ №3:
Это еще один хитрый способ сделать это!
data = ['0.1%',
'hello',
'how are you guys',
'0.1%',
'1%',
'0.1%',
'1%', ]
unwanted = [0, 3, 4, 5, 6,]
for ele in sorted(unwanted, reverse=True):
del data[ele]
print(data)