【问题标题】:Python - How to convert array elements into stringsPython - 如何将数组元素转换为字符串
【发布时间】:2020-12-11 14:49:29
【问题描述】:

我有一个数组 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 两次。这个想法是从数组中获取每个非字符串并将其转换为字符串。如您所见,不起作用

我没有想法,在 Google 上找不到任何内容。非常感谢任何帮助

【问题讨论】:

  • 没有办法。你想达到什么目的?你为什么首先想要这样的东西?
  • 你想把None转换成哪个str? "None" 或 "" 或文字 "myFunc()"?
  • 不清楚为什么你不只是在 myFunc() 周围加上引号,如果这是你想要的数组。
  • 根据我的理解,我需要 myFunc() 变成“myFunc()”,myFunc() 的类型是 None
  • @meniman98 这不是myFunc() 的类型,而是它返回的内容。

标签: python arrays string


【解决方案1】:

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

  1. 您将数组定义为myArray = [myFunc(), "Pears", myFunc(), "Pears"]
  2. 上述语句导致 myFunc 被评估(调用),而我的 myFunc 的 result 是数组中的位置。

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

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

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

【讨论】:

  • 我理解你的答案,也许现在我想起来了,我的问题措辞错误。我想要的是让数组读取 myFunc() 之类的“myFunc()”,而不管返回的是什么
  • @meniman98 你只是不能。从字面上看是没有办法的。
  • @meniman98:Asocia 是正确的,没有办法做你想做的事。我编辑了我的答案,希望能更清楚。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-14
  • 2015-08-02
  • 1970-01-01
  • 2013-11-07
相关资源
最近更新 更多