把列表转为数组
时间: 2023-09-20 19:10:55 浏览: 119
在Python中,列表和数组之间的转换非常简单。可以使用内置的`list()`函数将数组转换为列表,也可以使用内置的`array()`函数将列表转换为数组。以下是示例代码:
将列表转换为数组:
```python
import array
my_list = [1, 2, 3, 4, 5]
my_array = array.array('i', my_list)
print(my_array)
```
将数组转换为列表:
```python
my_array = array.array('i', [1, 2, 3, 4, 5])
my_list = my_array.tolist()
print(my_list)
```
在这里,`array()`函数需要两个参数。第一个参数是类型代码,用于指定数组中存储的数据类型。在这个例子中,我们使用了'i',表示整数类型。第二个参数是列表或数组本身。`tolist()`函数用于将数组转换为列表。
相关问题
Python把列表转为数组
在Python中,将列表转换为数组可以使用NumPy库中的`array()`函数。具体实现可以使用以下代码:
```python
import numpy as np
lst = [1, 2, 3, 4, 5] # 列表
arr = np.array(lst) # 将列表转换为数组
print(arr) # 输出转换后的数组
```
上面的代码将列表`lst`转换为数组`arr`。具体实现中,使用了NumPy库中的`array()`函数,将列表转换为数组。最后输出转换后的数组。
需要注意的是,将列表转换为数组后,数组的类型会根据列表元素的类型自动确定。如果列表元素的类型不一致,数组的类型会转换为能够容纳所有元素的最小类型。另外,如果列表中含有非数字类型的元素,会抛出`ValueError`异常。
next_state_action = s[0,0] + np.array(change[i]) , s[0,1] + np.array(change[i]) # 有点问题np.array把列表转为数组 TypeError: list indices must be integers or slices, not tuple
这个错误是因为 s 是一个列表,而不是一个二维数组。在 Python 中,列表的索引是通过单个整数值来访问的,而不是通过元组来访问的。
为了解决这个问题,可以将 s 定义为一个二维数组,然后修改 next_state_action 的计算方式。修改后的代码如下:
```
import numpy as np
# 定义初始状态
s = np.array([[1, 1]])
# 定义移动步长
step = 1
change = [[0, -step], [0, step], [-step, 0], [step, 0]]
# 计算四个方向的状态值
F_actions = []
for i in range(4):
next_state_action = np.array([s[0, 0] + change[i][0], s[0, 1] + change[i][1]])
x1, y1 = next_state_action
F_next_state_actions = pow(x1, 2) + pow(y1, 2)
F_actions.append(F_next_state_actions)
# 取最小状态值的索引
action = np.argmin(F_actions)
# 打印输出
print('状态值:', F_actions)
print('最小状态值的索引:', action)
```
这样就可以避免 TypeError 错误了。
阅读全文
相关推荐













