如何编辑列表中的 strings/urls?

How can I edit strings/urls within a list?

我已经抓取并创建了一个 URL 的列表,我正在尝试替换列表中每个 url 的一部分。

每个 URL 都包含我要删除的部分“/season/1288”。 'productions' 是我的 url 列表,这是我使用的代码:

prod_lists = [str.replace('/season/1288', '') for i in productions]
print(prod_lists)

它returns错误

TypeError: replace expected at least 2 arguments, got 1

要在您的代码中使用 list comprehension 创建列表,您应该使用变量 i,而不是 str

productions = [
    '/season/1288/aaa',
    '/season/1288/bbb',
    '/season/1288/ccc',
]
prod_lists = [i.replace('/season/1288', '') for i in productions]
print(prod_lists)

这将打印:

['/aaa', '/bbb', '/ccc']

您收到错误消息的原因是您使用 str class 而不是 str 实例调用了 replace 函数。它自动将 str 实例作为第一个参数传递,称为 self 但是,在此代码中 replace 找不到要作为第一个参数传递的 str 实例,因为 str 是一个 class,不是实例。

有趣的是,如果您 运行 以下代码显式传递 str 实例“/season/1288/ccc”,您可以看到结果被 1 替换而没有错误消息。

productions = ['/season/1288/aaa']
prod_lists = [str.replace('/season/1288/ccc', '/season/1288', '1') for i in productions]
print(prod_lists) # This prints: ['1/aaa']