所以我有一个 URL 的 Python 列表(在下面的代码片段中称为 lst)。
/this/is/the/first/url/file.zip
/this/is/the/second/url/file.zip
...
我想创建另一个仅包含每个网址的/file.zip 部分的列表。到目前为止我有这个:
lst2 = []
for i in lst:
lst2.append(i[0].split('/')][-1])
它会按预期返回/file.zip 部分。但我的问题是如何对整个列表执行此操作?
最佳答案
假设lst = [url1, url2, ...]
,您当前的代码非常接近最佳工作状态。
代码的最后一行lst2.append(i[0].split('/')][-1])
是问题所在。
通过调用i[0]
,您实际上获得了i
字符串的第一个字符(因为i
派生自内部的字符串) lst
),然后根据/
进行拆分,这样不行。那么 split
之后的单独 ]
就会出现错误。
因此,要修复此代码,您需要执行以下操作。
lst2 = []
for i in lst:
lst2.append(i.split('/')[-1])
然后,打印 lst2
将给出
['file.zip', 'file1.zip', ...]
这是您想要的输出。
<小时/>解释一下,i in lst
正在获取 lst
列表中的每个项目,这些项目是字符串。然后,在循环内部,字符串 i
根据其中的 /
进行拆分,从而生成另一个数组。但您想要该字符串的最后部分,即数组中的最后一项,可以使用 [-1]
访问它。
关于python - 如何对列表中的各个条目使用 split,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40385609/