在R中,我可以使用paste将字符串向量连接在一起
> a = 1:3
> a
[1] 1 2 3
> b = 4:6
> b
[1] 4 5 6
> d = 7:9
> d
[1] 7 8 9
> together = paste(a, b, d, sep='-')
> together
[1] "1-4-7" "2-5-8" "3-6-9"我如何在Python中做同样的事情?
发布于 2014-01-31 08:52:40
R中的矢量化操作可以用Python语言中的list comprehensions或内置函数map()来近似。
在这里,我们使用zip对这三个列表进行并行迭代。
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']上面代码中的一个微妙之处在于,连接的参数是一个generator expression,这意味着它的计算很慢。更懒惰的是,将zip替换为itertools包中的izip。
发布于 2014-01-31 08:45:09
你自己的函数怎么样:
def f(*args):
return '-'.join([str(a) for a in args])然后是map
map(f, a, b, c)
# ['1-4-7', '2-5-8', '3-6-9']或者是为了好玩(以及任意数量的值):
map(lambda *args: '-'.join(map(str, args), a, b, c)发布于 2014-01-31 08:58:18
添加假设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)https://stackoverflow.com/questions/21470513
复制相似问题