【问题标题】:String assignment in a list in a 'for' loop“for”循环中列表中的字符串赋值
【发布时间】:2014-11-04 11:34:08
【问题描述】:

我有一个列表['1', '2', '3', '4'] 我想将其转换为以下内容:['1.0', '2.0', '3.0', '4.0']。 在下面的代码中,为什么第二次尝试而不是第一次?

>>> list = ['1', '2', '3', '4']
>>> for element in list:
...     element = element + '.0'
...
>>> print(list)
['1', '2', '3', '4']
>>> for element in range(len(list)):
...     list[element] = list[element] + '.0'
...
>>> print(list)
['1.0', '2.0', '3.0', '4.0']

【问题讨论】:

  • 不要使用list作为变量名。
  • 第一次尝试怎么可能成功,你正在修改每个element而不是每个list element
  • 糟糕,忘记了,谢谢

标签: python string list loops for-loop


【解决方案1】:

element 是局部变量,只分配给列表的当前元素。

在第二种情况下,list[element] 被分配给列表,其中element 指向列表的当前索引。

【讨论】:

    【解决方案2】:

    您没有更新列表。您只需更新元素变量。

    【讨论】:

      【解决方案3】:
      new_list = [x + '.0' for x in old_list]
      

      【讨论】:

      • 这是一个答案,但不是针对所提出的问题。
      • 这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方发表评论 - 您可以随时评论自己的帖子,一旦您有足够的reputation,您就可以comment on any post
      • 不管不回答,谢谢,这真的很有帮助
      • @Philio 这在很大程度上是一个答案,而不是评论。您对错误的答案投了反对票,而不是删除它。
      • @Korem 你说这不是问题的答案?因此,我将其从评论中标记为未回答正确的问题。
      猜你喜欢
      • 1970-01-01
      • 2021-12-17
      • 2021-10-11
      • 1970-01-01
      • 2023-01-24
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多