python - Python - 如何将数组元素转换为字符串
问题描述
我有一个数组 myArray,它有 4 个元素。
myArray = [myFunc(), "Pears", myFunc(), "Pears"]
我的目标是将 myFunc() 的函数调用更改为像“myFunc()”这样的字符串
可以看到数组内部有两个函数调用的问题,都必须转换为字符串类型。“Pears”字符串很好,我不需要碰它。我也无法以任何方式更改 myFunc() 。我无权访问它。否则,如果我这样做了,我可以简单地返回一个字符串。就我而言,我无权访问它,所以我必须想办法将其类型从转换None
为String
这是我到目前为止尝试过的
print( str ( myArray ) )
这打印
[None, "Pears", None, "Pears"]
我尝试过的其他方法是:
for item in myArray: if not ( isinstance(item, str) ): print( str( item ) )
这最终打印了这个:None
两次。这个想法是从数组中获取每个非字符串并将其转换为字符串。如您所见,不起作用
我没有想法,我在谷歌上找不到任何东西。任何帮助是极大的赞赏
解决方案
print(str(myArray))
myFunc()
正在打印正确的值,因为它将(which is )的返回值转换None
为字符串。这是正在发生的事情:
- 您将数组定义为
myArray = [myFunc(), "Pears", myFunc(), "Pears"]
- 上面的语句导致
myFunc
被评估(调用)并且my的结果myFunc
是数组中的位置。
因此,当执行数组定义语句时,数组被评估为,[None, "Pears", None, "Pears"]
因为调用myFunc()
返回None
。此时无法确定None
来自哪里,基本上无法判断None
是由myFunc()
、硬编码还是由其他方法返回。
- 当您尝试打印数组中的值时,这些值是
[None, "Pears", None, "Pears"]
因为这是该数组在该时间点包含的内容。
另一种思考方式是myFunc()
函数调用被调用该函数的结果替换,因为该()
方法调用该函数并给我它的值。
推荐阅读
- java - Groovy String Tokenizer 匹配错误的分隔符
- java - JodaTime - IllegalArgumentException:无效格式:“2018 年 10 月 29 日星期一 15:17:19 +0000”
- pyspark - 将文本文件映射到键/值对,以便在 pyspark 中对它们进行分组
- ios - 当 Firebase 与 Push 框架一起使用时,没有调用 didReceiveRemoteNotification
- azure-web-app-service - DNS 更改将如何影响我的 Azure 站点?
- c++ - 为什么 std::optional::operator=(U&&) 要求 U 是非标量类型?
- xml - 用于抓取所有元素的 XML xPath 语法
- jenkins - Jenkins 管道可选布尔参数
- matlab - 从 Matlab 上的自定义混合物中绘制随机数?
- windows - Windows 上的 Kubernetes:无法从节点主机服务器或 Internet 连接到 Pod