在Python中索引到多个位置的列表?

在Python中索引到多个位置的列表?,python,Python,假设我有两个列表A,其中有10个元素,我想将列表B=[x1,y1]分配给A中的值。如果这些值是连续的,则很简单,例如A[1:3]=B。但是如果我的索引是非顺序的呢?在MATLAB中我可以做A([3 10])=B,是否有一个同等干净的Python解决方案?这样做的for循环很简单,但我想知道我是否缺少了更“Pythonic”的内容。稍微详细一点,但您可以使用元组解包来分配给新索引: >>> x = range(1, 11) >>> x[3], x[7] = 99

假设我有两个列表A,其中有10个元素,我想将列表
B=[x1,y1]
分配给A中的值。如果这些值是连续的,则很简单,例如
A[1:3]=B
。但是如果我的索引是非顺序的呢?在MATLAB中我可以做
A([3 10])=B
,是否有一个同等干净的Python解决方案?这样做的for循环很简单,但我想知道我是否缺少了更“Pythonic”的内容。

稍微详细一点,但您可以使用元组解包来分配给新索引:

>>> x = range(1, 11)
>>> x[3], x[7] = 99, 999
>>> x
[1, 2, 3, 99, 5, 6, 7, 999, 9, 10]

稍微详细一点,但您可以使用元组解包来分配给新索引:

>>> x = range(1, 11)
>>> x[3], x[7] = 99, 999
>>> x
[1, 2, 3, 99, 5, 6, 7, 999, 9, 10]

每当我尝试用Python模拟一些Matlab功能时,我都使用numpy。使用numpy而不是python
list
可以使用与Matlab几乎相同的语法获得所需的功能:

In [1]: import numpy as np

In [2]: a = np.arange(10)

In [3]: b = [200, 300]

In [4]: a[[2, 9]] = b

In [5]: a
Out[5]: array([  0,   1, 200,   3,   4,   5,   6,   7,   8, 300])

每当我尝试用Python模拟一些Matlab功能时,我都使用numpy。使用numpy而不是python
list
可以使用与Matlab几乎相同的语法获得所需的功能:

In [1]: import numpy as np

In [2]: a = np.arange(10)

In [3]: b = [200, 300]

In [4]: a[[2, 9]] = b

In [5]: a
Out[5]: array([  0,   1, 200,   3,   4,   5,   6,   7,   8, 300])

添加输入和输出的示例将有助于理解您的问题我无法理解“分配”的含义。
A([3 10])
不是顺序列表是什么?这是可能的,但我们必须理解模拟(对于我们这些从未见过MATLAB语法的人来说)。添加输入和输出示例将有助于理解您的问题。我无法理解“赋值”的含义。
A([3 10])
怎么不是顺序列表?这是可能的,但我们必须理解模拟(对于我们这些从未见过MATLAB语法的人来说)。