试图查找和替换200行元组列表的部分 - Python

时间:2017-01-26 03:31:01

标签: python list tuples

两个案例的样本弹出。下面。在一个很长的列表中,我的“e”变成了“\ xe9”和“\ xe8”,因为法语中的“e”小逗号。我想把这些“\ xe8”的东西无缝地变回“e”。 我看到有一个名为Unidecode的模块(?)。从未使用过它。它是解决这个问题的最恐怖的方式吗?

这些是列表中的元组。 列表的一部分示例...

(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

1 个答案:

答案 0 :(得分:0)

我想这是你从print获得的结果,我认为你误解了它在python中是如何工作的。 您不需要替换任何内容,它们就是它们的字符,只是“转义版本”

尝试这样做:

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__方法是不同的,它使用{{1创建一个字符串每个对象的方法,这就是你在控制台上看到不同结果的原因。