Python上的连接向量字符串
在R中,我可以使用粘贴将字符串向量连接在一起:Python上的连接向量字符串,python,r,Python,R,在R中,我可以使用粘贴将字符串向量连接在一起: 如何在Python中实现同样的功能?您自己的函数如何: def f(*args): return '-'.join([str(a) for a in args]) 然后是地图 或者为了好玩和任何价值观: map(lambda *args: '-'.join(map(str, args), a, b, c) R中的矢量化操作可以通过或内置函数在Python中进行近似 这里,我们使用对三个列表进行并行迭代 a = range(1,4) b
如何在Python中实现同样的功能?您自己的函数如何:
def f(*args):
return '-'.join([str(a) for a in args])
然后是地图
或者为了好玩和任何价值观:
map(lambda *args: '-'.join(map(str, args), a, b, c)
R中的矢量化操作可以通过或内置函数在Python中进行近似 这里,我们使用对三个列表进行并行迭代
a = range(1,4)
b = range(4,7)
c = range(7,10)
together = ['-'.join(str(i) for i in z) for z in zip(a,b,c)]
输出:
>>> together
['1-4-7', '2-5-8', '3-6-9']
上面代码中的一个微妙之处是join的参数是a,这意味着它的计算是惰性的。更懒惰的是,从软件包中替换为。添加一行,假设有3个元素列表
l1 = range(1,4)
l2 = range(4,7)
l3 = range(7,10)
map(lambda x,y,z: '%s-%s-%s' % (x,y,z), l1, l2,l3)
编辑:
zipa,b,c迭代a[0],b[0],c[0],a[1],b[1],c[1]等等。在zipa,b,c中,我们可以使用*代替['{}-{}-{}'.格式x,y,z表示x,y,z,z,如上所述
>>> together
['1-4-7', '2-5-8', '3-6-9']
l1 = range(1,4)
l2 = range(4,7)
l3 = range(7,10)
map(lambda x,y,z: '%s-%s-%s' % (x,y,z), l1, l2,l3)
a = range(1,4)
b = range(4,7)
c = range(7,10)
together = ['{}-{}-{}'.format(*x) for x in zip(a, b, c)]