Traceback (most recent call last): File "C:/Users/huawei/Beamshaping_System/Beamshaping_System/Beamshaping_SCNU/2021022172读取矩阵.py", line 81, in <module> lst = [[int(num) for num in row.split()] for row in s.strip('[]').split('] [')] File "C:/Users/huawei/Beamshaping_System/Beamshaping_System/Beamshaping_SCNU/2021022172读取矩阵.py", line 81, in <listcomp> lst = [[int(num) for num in row.split()] for row in s.strip('[]').split('] [')] File "C:/Users/huawei/Beamshaping_System/Beamshaping_System/Beamshaping_SCNU/2021022172读取矩阵.py", line 81, in <listcomp> lst = [[int(num) for num in row.split()] for row in s.strip('[]').split('] [')] ValueError: invalid literal for int() with base 10: 'C1'
时间: 2024-03-07 07:48:37 浏览: 71
Mac下anaconda中Spyder打开报错Traceback(most recent call last)…问题
5星 · 资源好评率100%
这个错误提示表明在转换字符串为整数的过程中,有一个字符串'C1'不能被正确地转换为整数。这个问题可能是由于你的字符串中包含了'C1'这样的非数字字符,导致int()函数无法将其转换为整数。你可以检查一下你的字符串中是否有这样的非数字字符,或者是否有其他不符合要求的字符。
另外,你也可以将你的字符串转换为一个numpy数组,这样就可以避免上述问题。具体实现如下:
```python
import numpy as np
s = '[[0 0 0 1 1 0 0 0] [1 1 1 1 1 0 0 0] [1 0 0 1 0 1 1 0] [1 0 0 0 0 1 0 1] [1 1 1 1 1 1 1 0] [1 0 0 1 1 1 1 0] [0 0 0 0 0 1 1 0] [0 1 0 1 0 1 1 1]]'
arr = np.array([list(map(int, row.split())) for row in s.strip('[]').split('] [')])
print(arr)
```
输出结果为:
```
[[0 0 0 1 1 0 0 0]
[1 1 1 1 1 0 0 0]
[1 0 0 1 0 1 1 0]
[1 0 0 0 0 1 0 1]
[1 1 1 1 1 1 1 0]
[1 0 0 1 1 1 1 0]
[0 0 0 0 0 1 1 0]
[0 1 0 1 0 1 1 1]]
```
其中,np.array()方法将Python列表转换为numpy数组,map(int, ...)方法将每个元素都转换为整数类型,最后列表解析将这个转换好类型的元素列表转换为Python二维列表。
阅读全文