2016-07-22 1 views
-2

Вот таблица:Как удалить строку, если одна из ячеек пуст

Color Name  Size 
red Apple  large 
green Apple  small 
orange Orange small 
pea Green  super small 

Здесь я заменить все экземпляры Apple, с Apple_Object и удалить любое имя, которое не яблоко:

for x in name: 
    if 'Apple' not in name: 
     name = name.replace(x, '') 


for x in name: 
    name = name.replace('Apple', 'Apple_Object') 

sheet.write (имя):

Color Name    Size 
red  Apple_Object  large 
green Apple_Object  small 
orange     small 
pea      super small 

Как удалить все строки без имени?

Желаемый результат:

Color Name    Size 
    red  Apple_Object  large 
    green Apple_Object  small 

Спасибо!

+1

Какой тип данных вы используете для хранения всей таблицы? – dashiell

+3

Это не список. Вы читаете из своего рода CSV-файла? –

+1

'list' не имеет метода' replace', только строки. Также изменение списка во время итерации вызывает проблемы – smac89

ответ

1

Вы заменяете значение яблока зря

for x in list: 
    if 'Apple' not in list: 
    list = list.replace(x, '') 

, но вы должны быть устранение текущей строки

for x in list: 
    if 'Apple' not in list: 
    del list[index] 
+1

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

+0

Если вы видите, что редактирование фактически не хранится в списке. –

0

Попробуйте это. Он отфильтровывает строки, которые действительно содержит пустую строку, оставив остальные

result = filter(lambda x: '' not in x, list)