Skip to main content
 首页 » 编程设计

python之更改元组列表中元组的第一个值

2025年05月04日9lexus

我有一个格式为 (URL, name) 的元组列表。有时 URL 带有完整路径,而我只想要 www.XXXXX.yyy 部分,所以我有一个函数可以拆分 URL 并仅返回该部分。

我怎样才能修改该列表中的所有第一个值,以获得一个充满这种格式的元组的最终列表 (my_function(URL), name)。

例如: 我有这个列表:

my_list = [('www.url.com/index.html', 'url'),  
           ('www.website.org/id/1234/photos', '1234 Photos'),  
           ('www.test.com', 'test')] 

我想将 my_function() 应用于所有第一个值,以获得下一个最终列表:

>> print my_list 
[('www.url.com', 'url'), ('www.website.org', '1234 Photos'), ('www.test.com', 'test')] 

请您参考如下方法:

因为 tuple 是一个 immutable类型,您不能更改元组的元素/内容。

对于您的情况,您可以做的是生成一个包含新元组的列表。

试试这个:

my_list = [('www.url.com/index.html', 'url'),  
           ('www.website.org/id/1234/photos', '1234 Photos'),  
           ('www.test.com', 'test')] 
 
f = lambda x: x.split('/')[0]  
my_list = [(f(url),name) for url, name in my_list] 
print(my_list) 

输出:

[('www.url.com', 'url'), ('www.website.org', '1234 Photos'), ('www.test.com', 'test')]