Найти \ x в строке Python - PullRequest
0 голосов
/ 05 июля 2018

Я не могу заменить \ x в строке Python на ''

x ='\x01'
re.sub('\x','',x)

дает ValueError: неверный \ x escape.

isinstance(x,unicode) 

дает Ложь.

def remove_non_ascii_2(text):
    return re.sub(r'[^\x00-\x7F]', '', text)

x = '\x01'
remove_non_ascii_2(x)

возвращает '\ x01' без эффекта

Как я могу заменить '\ x' пустой строкой?

1 Ответ

0 голосов
/ 05 июля 2018

Судя по комментариям, самая большая проблема, с которой вы столкнулись - это несогласованный источник данных. В данном списке значений у вас есть обычные значения с плавающей запятой: nan, 1.0, 0.0 строки, которые представляют числа с плавающей запятой: "1.0", "0.0" и строки, которые содержат целые числа в виде двоичных значений: "\x01"

Относительно сортировать поплавки по строкам примерно так:

if type(item) == float:
    #do stuff

Кроме того, если вы хотите отсортировать значения nan (особый тип с плавающей точкой), вы можете сделать это:

if type(item) == float 
    if item == float('nan'):
        #do other stuff
    else:
        #do stuff

Сортировка строк немного сложнее, поскольку существует множество способов представления значения с использованием строки. Обычное преобразование строки в плавающее с использованием float("1.0") работает, если ваша строка уже выглядит как число с плавающей точкой (правила для поиска как поплавок) . Однако, если значение представлено двоичным значением строковых символов (может показаться, что это так), вам нужно будет найти способ различать два типа строки. Это может быть так же просто, как сначала попытаться вызвать float(item) и отловить ошибки, когда формат не соответствует критерию «как с плавающей точкой». Тогда, предполагая, что у вас есть только один символ, вы можете использовать ord(item), чтобы вернуть двоичное представление указанного символа. Это может выглядеть примерно так:

try:
    converted = float(item)
catch ValueError:
    if len(item) == 1:
        converted = ord(item)
    else:
        #determine how to handle multi character values
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...