用python实现单个列表中相邻元素的合并,列表中的最后一个元素为所有元素的组合

如["北京","师范","大学"]
结果:["北京师范","师范大学","北京师范大学"]
a = ["北京","师范","大学"]
b=a.copy()

for i in range(len(b)):
if i<(len(b)-1):
b[i]=b[i]+b[i+1]

del(b[-1])
b.append(a[0]+a[1]+a[2])
print(b)
除了这种方式以外,如果有多个列表呢 如何实现 请教各位 感谢

# encoding: utf-8


if __name__ == "__main__":
    a = ["a", "b", "c", "d"]
    r = list(map(lambda (x, y) : x + y, zip(a[0:-1],a[1:])))
    r.append(''.join(a))
    print(r)

['ab', 'bc', 'cd', 'abcd']

a = ["北京","师范","大学"]
b=a.copy()
c=[a[i]+b[i+1] for i in range(len(a)-1)]
c.append("".join(a))
print(c)
这个是单个列表的,如果是二维列表呢 如何实现呢