python - 在 python 中使用用户输入创建一个数组
问题描述
我想连接一个包含不同元素大小python的数组作为用户输入不幸的是它不适用于用户输入,我收到以下错误“值错误:无法连接零维数组”我不明白它是如何工作的通常但用户输入不起作用?
import numpy as np
#lst_2=np.concatenate([[1],[2],np.repeat(3,3),[2]])
lst_2=input("PLEASE ENTER THE THING:: ")
print('OKKKKL',lst_2)
np.concatenate(lst_2)
解决方案
好的,更详细地说,您创建一个列表:
In [251]: alist = [[1],[2],np.repeat(3,3),[2]]
In [252]: alist
Out[252]: [[1], [2], array([3, 3, 3]), [2]]
并应用于concatenate
该列表:
In [253]: np.concatenate(alist)
Out[253]: array([1, 2, 3, 3, 3, 2])
使用input
,如果我复制粘贴相同的内容,我会得到string
:
In [254]: astr = input()
[[1],[2],np.repeat(3,3),[2]]
In [255]: astr
Out[255]: '[[1],[2],np.repeat(3,3),[2]]'
引号很重要。 concatenate
不适用于:
In [256]: np.concatenate(astr)
Traceback (most recent call last):
File "<ipython-input-256-95017eec7f88>", line 1, in <module>
np.concatenate(astr)
File "<__array_function__ internals>", line 5, in concatenate
ValueError: zero-dimensional arrays cannot be concatenated
必须首先将字符串转换为列表:
In [257]: alist1 = eval(astr) # better ast.literal_eval
In [258]: alist1
Out[258]: [[1], [2], array([3, 3, 3]), [2]]
In [259]: np.concatenate(alist1)
Out[259]: array([1, 2, 3, 3, 3, 2])
将字符串作为代码输入与通过input
函数输入不同。
推荐阅读
- drools - 如何在业务中心 UI 中查看多个流口水规则
- go - 关于 Go 中的“defer”和“select”键
- javascript - 我无法将“名称”属性添加到 Accordion、AccordionSummary(Material UI 组件)?
- vue.js - 如何删除上传的图片
- kotlin - 从暴露的 orm 表生成 SQL 迁移
- sql-server - SQL Server 查询以根据用户提供的 id 获取嵌套的子记录
- vba - 用用户输入替换零长度邮件合并字段
- mysql - 无法打开文件,错误 2 - MySQL 导入
- edi - 接收方需要什么来接收 EDI 文件?
- css - Safari 14 溢出隐藏不适用于嵌套旋转