【问题标题】:How to convert values in place in a python for loop?如何在python for循环中就地转换值?
【发布时间】:2020-04-04 09:12:02
【问题描述】:

在这个简单的python示例中:

arr = [1,2,3,4,5]
for n in arr: 
    s = str(n)
    print(s) 

我想写一段代码,有点类似to [str(n) for n in arr],但格式如下:

arr = [1,2,3,4,5]
for str(n) as s in arr: 
    print(s) 

我基本上想在for 语句中包含s=str(s)。在python中有什么方便的方法吗?

【问题讨论】:

  • 您期望的结果是什么?列表推导是一种存储元素而不是打印它们的方法。只需for n in arr: print(n) 无需传递给str
  • 第一个例子很好,但你可以直接使用print(n)。具有列表理解的第二个示例也很好。不过,第三个例子没有意义。
  • 你能说明你的目标是什么吗?您是想就地转换列表、转换 for 循环中的元素,还是仅将值打印为字符串?
  • 您想要的格式很明显是语法错误。需要明确一点:您想要删除单行 s = str(s),并且仍然希望 s 成为 str 而不管其初始类型如何?
  • 您似乎正在寻找“海象运算符”。见stackoverflow.com/questions/50297704/…

标签: python python-3.x loops for-loop


【解决方案1】:

至少有两种方式:

map:

arr = [1,2,3,4,5]
for s in map(str, arr): 
    print(s)

生成器推导:

arr = [1,2,3,4,5]
for s in (str(n) for n in arr):
    print(s) 

【讨论】:

  • 哪个更快?如果他们添加这样的关键字以使其更好,那就太好了。
【解决方案2】:

您根本不需要使用strprint 函数自动将其参数转换为字符串。

所以你可以简单地使用:

for n in arr:
    print(n)

不管n是什么。

参考:https://docs.python.org/3/library/functions.html#print

【讨论】:

  • 这与 str() 方法无关。这只是一个例子。如何在 for 循环中进行该操作?
猜你喜欢
  • 2017-08-10
  • 2020-12-17
  • 2021-10-15
  • 1970-01-01
  • 2013-09-24
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
相关资源
最近更新 更多