首页 > 解决方案 > Python - 如何将数组元素转换为字符串

问题描述

我有一个数组 myArray,它有 4 个元素。

myArray = [myFunc(), "Pears", myFunc(), "Pears"]

我的目标是将 myFunc() 的函数调用更改为像“myFunc()”这样的字符串

可以看到数组内部有两个函数调用的问题,都必须转换为字符串类型。“Pears”字符串很好,我不需要碰它。我也无法以任何方式更改 myFunc() 。我无权访问它。否则,如果我这样做了,我可以简单地返回一个字符串。就我而言,我无权访问它,所以我必须想办法将其类型从转换NoneString

这是我到目前为止尝试过的

print( str ( myArray ) )

这打印 [None, "Pears", None, "Pears"]

我尝试过的其他方法是:

for item in myArray: if not ( isinstance(item, str) ): print( str( item ) )

这最终打印了这个:None两次。这个想法是从数组中获取每个非字符串并将其转换为字符串。如您所见,不起作用

我没有想法,我在谷歌上找不到任何东西。任何帮助是极大的赞赏

标签: pythonarraysstring

解决方案


print(str(myArray))myFunc()正在打印正确的值,因为它将(which is )的返回值转换None为字符串。这是正在发生的事情:

  1. 您将数组定义为myArray = [myFunc(), "Pears", myFunc(), "Pears"]
  2. 上面的语句导致myFunc被评估(调用)并且my的结果myFunc是数组中的位置。

因此,当执行数组定义语句时,数组被评估为,[None, "Pears", None, "Pears"]因为调用myFunc()返回None。此时无法确定None来自哪里,基本上无法判断None是由myFunc()、硬编码还是由其他方法返回。

  1. 当您尝试打印数组中的值时,这些值是[None, "Pears", None, "Pears"]因为这是该数组在该时间点包含的内容。

另一种思考方式是myFunc()函数调用被调用该函数的结果替换,因为该()方法调用该函数并给我它的值。


推荐阅读