2017-01-26 4 views
0

Образец обоих случаев выскакивает. Ниже. В длинном списке мои «e» превратились в «\ xe9» и «\ xe8» из-за небольшой запятой «e» s с французского языка. Я хотел бы легко превратить эти вещи «\ xe8» обратно в «e» s. Я вижу, что есть модуль (?), Называемый Unidecode. Никогда не использовал его. Это самый питонический способ справиться с этим?Пытается найти и заменить части 200 строк Список кортежей - Python

Это кортежи внутри списка. Пример части списка ...

(u'Caf\xe9 Society', 70) 
(u'Oddball and the Penguins (Oddball)', 86) 
(u'Antarctica: Ice & Sky (La glace et le ciel)', 95) 
(u"Reset (Rel\xe8ve: Histoire d'une cr\xe9ation)", 75) 

Я пытался ...

list3 = ['e' if x=='/ex9' else x for x in list2] 

Это не дает мне ошибку. Он просто ничего не делает.

Я поставлю свой весь код, потому что я не совсем знаю, как его тиражировать в небольшом масштабе. Он вытаскивает несколько сотен названий фильмов и партитуры от RottenTomatoes.com.

import requests 

r3 = requests.get('https://www.rottentomatoes.com/api/private/v2.0/browse?page=1&limit=330&type=dvd-all&services=amazon%3Bamazon_prime%3Bfandango_now%3Bhbo_go%3Bitunes%3Bnetflix_iw%3Bvudu&sortBy=release') 


movies = [] 
data = r3.json() 
for result in data["results"]: 
    movies.append((result["title"], result["tomatoScore"])) 



list2 = [i for i in movies if i[1] >=60] 


list3 = ['e' if x=='/ex9' else x for x in list2] 

for i in list3: 
    print i 
+0

Попробуйте '' 's.replace (chr (232), 'e')' '' ?? Какую версию Python вы используете? – wwii

+0

Python 2.7. Что такое 232? Специально для e с французской вещью над этим ?. Я немного новичок в Python, поэтому я не уверен, где поставить s.replace (chr (232), 'e') – Ant

ответ

0

Я полагаю, что это результат, который вы получили от print, и я думаю, вы поняли, как это работает в питона. Вам ничего не нужно заменять, они точно такие, какие они есть, только «экранированная версия».

Попробуйте сделать это:

for movie in movies: 
    print movie[0], movie[1] 
    print movie 

И результат:

Café Society 70 
(u'Caf\xe9 Society', 70) 
Reset (Relève: Histoire d'une création) 75 
(u"Reset (Rel\xe8ve: Histoire d'une cr\xe9ation)", 75) 

При печати строки, вы получите выход __str__ метод объекта, а на самом деле метод __str__ списка отличается, он создает строку, используя метод __repr__ для каждого объекта, поэтому вы видите другой результат на своей консоли.

+0

Я вижу. Это хорошо знать. Я печатал только названия фильмов в одиночку с этим кодом ... песни3 = [Обл (я [0]) для г в list2] для г в List3: \t печати я То, что вы показали мне гораздо лучше. С плохим кодом не было проблем. Хотя я все равно хотел бы заменить их обычными «e». Я думаю, что я могу найти документацию для модуля Unidecode – Ant