将列表项添加到另一个列表中项的末尾

时间:2016-02-11 12:34:42

标签: python list list-comprehension

我有:

foo = ['/directory/1/', '/directory/2']
bar = ['1.txt', '2.txt']

我想:

faa = ['/directory/1/1.txt', '/directory/2/2.txt']

我似乎只能调用尝试向列表添加字符串的操作,这会导致类型错误。

5 个答案:

答案 0 :(得分:7)

@Override
void onStartup(ServletContext servletContext) throws ServletException {
    servletContext.getSessionCookieConfig().setName(sessionCookieName);
}

答案 1 :(得分:5)

这是一个使用列表理解的单行程序:

faa = ['/'.join(b).replace('//', '/') for b in zip(foo, bar)]

请注意,在连接时,它总是使用正斜杠(/),而@Ignacio Vazquez-Abrams'解决方案是更多跨平台(例如,当你在Windows中运行时,它将使用反斜杠)。

答案 2 :(得分:0)

要加入两个字符串,只需添加它们即可。

>>> foo = ['/directory/1/', '/directory/2/']
>>> bar = ['1.txt', '2.txt']
>>> map(lambda x,y:x+y, foo, bar)
['/directory/1/1.txt', '/directory/2/2.txt']

...假设您的原始列表有拼写错误且'/directory/2'应为'/directory/2/'

本质上,这会动态创建一个函数(lambda),它将返回其两个参数的总和,并将其并行应用于该对列表的每个元素。

map&的文档链接 lambda

答案 3 :(得分:0)

只需尝试一下。不要变得复杂。

faa = [x+y for x, y in zip(foo, bar)]

输出

    >>> faa
    ['/directory/1/1.txt', '/directory/2/2.txt']

答案 4 :(得分:0)

for lists in zip(foo,bar):
  together.insert(1,'/'.join(lists).replace('//','/'))

print together

together2 = map("{0[0]}{0[1]}".format, zip(foo,bar))
print together2

第二个只有在列表变为

时才有效
foo =  ['/directory/1/', '/directory/2/']
bar = ['1.txt', '2.txt']

因为第二种方法没有添加' /'在第一个清单的项目的最后...无论如何都乐意帮助...

Stackoverflow btw新手