分配给python中的不连续切片

dgo*_*sen 2 python indexing matlab variable-assignment slice

在Matlab中我可以这样做:

s1 = 'abcdef'
s2 = 'uvwxyz'

s1(1:2:end) = s2(1:2:end)

s1 is now 'ubwdyf'
Run Code Online (Sandbox Code Playgroud)

这只是一般的例子:

A(I) = B
Run Code Online (Sandbox Code Playgroud)

其中A,B是向量,I索引向量和B长度与I相同.(暂时忽略矩阵).

Python中一般情况的pythonic等价物是什么?最好也应该在jython/ironpython上运行(没有numpy)

编辑:我使用字符串作为一个简单的例子,但列表的解决方案(已经发布,哇)是我正在寻找的.谢谢.

Mar*_*ers 6

>>> s1 = list('abcdef')
>>> s2 = list('uvwxyz')
>>> s1[0::2] = s2[0::2]
>>> s1
['u', 'b', 'w', 'd', 'y', 'f']
>>> ''.join(s1)
'ubwdyf'
Run Code Online (Sandbox Code Playgroud)

主要区别是:

  • 字符串在Python中是不可变的.但您可以使用字符列表.
  • Python中的索引是基于0的.
  • 切片语法是[start : stop : step]所有参数都是可选的.