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

Jos*_*tin 1 python tuples list

我有一个这种格式的元组列表(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')]
Run Code Online (Sandbox Code Playgroud)

我想申请my_function()所有的第一个值,获得下一个最终列表:

>> print my_list
[('www.url.com', 'url'), ('www.website.org', '1234 Photos'), ('www.test.com', 'test')]
Run Code Online (Sandbox Code Playgroud)

Ale*_*ung 5

由于tuple不可变类型,因此无法更改元组的元素/内容.

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

试试这个:

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)
Run Code Online (Sandbox Code Playgroud)

输出:

[('www.url.com', 'url'), ('www.website.org', '1234 Photos'), ('www.test.com', 'test')]
Run Code Online (Sandbox Code Playgroud)