2016-09-28 3 views
-7

У меня есть список, как это (они значение измерений):Python удалить дубликаты из списка?

val = [6'6 X 9'8, 6'6" X 9'8"] 

Я использую функцию набора для удаления дубликатов:

val = set(val) 

Выход:

{6'6 X 9'8, 6'6" X 9'8"} 

хочет любое значение на выходе, если оба значения одинаковы (цифры должны быть равны):

either 6'6 X 9'8 or 6'6" X 9'8" 


Separate values are like this ` 6'6 X 9'8` and 6'6" X 9'8" 

Я хочу удалить дубликаты, если значения совершенно разные. Здесь в моем случае: значения фактически одинаковы, но единицы измерения различны (см. Блок числа 6, в первом значении 6 не имеет метки, а во втором значении 6 имеет отметку "). Однако заданная функция дает возможность рассматривать оба значения разными.

Есть ли способ проверить только дубликаты, если только номера одинаковы?

+0

Это не синтаксически правильный список. Пожалуйста, разместите список, который я могу вставить в свой интерпретатор. – timgeb

+0

Python даже не распознает 'list', как вы его определяете. Также список встроен в python - используйте другое имя для своего списка !!! – coder

+0

в порядке, но тогда какой из них вы бы сохранили? с цитатой или двойной цитатой ?? –

ответ

1

Это не работает, как вы ожидали, из-за того, что ваши кавычки не закрываются должным образом.

Если изменить элементы вашего списка, чтобы быть строки, как:

l = ["6'6 X 9'8", "6'6 X 9'8"] 

вместо:

l = [6'6 X 9'8, 6'6" X 9'8"] 

затем сказать:

print set(l) 

и вы получите выход вы ожидали.

P.S .: не используйте «список» в качестве имени переменной, так как это встроенный метод.

+0

спасибо. Итак, сначала мне нужно преобразовать значения в свой список в строки? Фактически я применяю эту функцию набора, используя функцию приложения lambda, поскольку эти списки присутствуют в строке в столбце фрейма данных. например: df ['col'] = df ['col']. apply (lambda x: set (x)) ' – niranjan

+0

В этом случае они должны быть строками, так как у вас есть альфа-символ« X ». Не забудьте открыть и закрыть все кавычки вокруг каждого элемента, иначе вы получите синтаксическую ошибку. –

+0

ok перед передачей моего списка для установки функции мне нужно преобразовать все значения в список в строки правильно? – niranjan

Смежные вопросы