在元组lis中更改元组的第一个值

2024-10-05 11:28:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个格式为(URL, name)的元组列表。有时,URL包含完整路径,我只希望www.XXXXX.yyypart,所以我有一个函数来分割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()应用于所有第一个值,得到下一个最终列表:

^{pr2}$

Tags: 函数nametest路径comurl列表my
3条回答

由于tupleimmutable类型,因此不能更改元组的元素/内容。在

对于您的情况,您可以使用新元组生成一个列表。在

试试这个:

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)

输出:

^{pr2}$
def myfunction(strings):    
    return strings.split('/')[0]

output = [(myfunction(url), text) for url, text in my_list]

使用^{}获取URL的域(以及子域):

from urlparse import urlparse

def netloc_parse(url):
    if not url.startswith('http'): 
        url = '//' + url 
    return urlparse(url).netloc

print [(netloc_parse(i[0]), i[1]) for i in my_list]

它的输出将是:

^{pr2}$

感谢@Dexter给了suggestion。在

相关问题 更多 >

    热门问题