当前位置: 首页 > 面试题库 >

使用python编程时在迭代时修改列表

宋飞掣
2023-03-14
问题内容

我在工作中使用的程序使用Python作为脚本语言。我试图在插入列表时修改列表感到困惑。另外,我在for循环中有一些逻辑,希望将列表的一部分从浮点数转换为文本。最后,所有文本必须正好为4个空格。在我为解决这个问题而进行的研究中,我遇到了许多其他的模拟问题,这些其他问题试图在迭代列表时尝试修改列表。但是我觉得我的问题很独特,因为我试图在遍历列表时将列表从浮点数修改为文本。

我实际上找到了解决该问题的方法,但是我觉得解决方案要复杂得多,因此我需要一个更简单的解决方案,这就是我在这里的原因。我想改善代码。

这是给我问题的代码:

#these come in as floats with a single decimal space, ex:99.9
val = [AvailibilityLine1, AvailibilityLine2,
       PerformanceLine1, PerformanceLine2,
       QualityLine1, QualityLine2]

for i in val:
    j = 0
    if i >= 100:
       val[j] = "100 "                                                           
    elif i >= 10 and i < 100:
       val[j] = str(val)
    elif i > 0 and  i < 10:
       val[j] = " " + str(val)
    elif i <= 0:
       val[j] = "    "    #insert 4 spaces
    else:
       val[j] = "    "    #insert 4 spaces if all else fails
    j=j+1

问题答案:

这应该工作

AvailibilityLine1 = 1.9
AvailibilityLine2 = 45.9
PerformanceLine1 = 76.5
PerformanceLine2 = 99.9
QualityLine1 = 100.0
QualityLine2 = 0.0

#these come in as floats with a single decimal space, ex:99.9
val = [AvailibilityLine1, AvailibilityLine2, PerformanceLine1, 
       PerformanceLine2, QualityLine1, QualityLine2]

j = 0
for i in val:
    if i >= float(100):
        val[j] = "100 "
    elif i >= 10 and i < 100:
        val[j] = str(val[j])
    elif i > 0 and  i < 10:
        val[j] = " " + str(val[j])
    elif i <= 0:
        val[j] = "    "    #insert 4 spaces
    else:
        val[j] = "    "    #insert 4 spaces if all else fails
    j = j + 1

print val

输出量

>>> [' 1.9', '45.9', '76.5', '99.9', '100 ', '    ']

您的代码中的问题:

  1. 计数器J的初始化应在for循环之外
  2. 您要在if-else的第二和第三条件下将整个列表(val)分配给列表索引


 类似资料:
  • 问题内容: 上面的python代码使输出与预期的完全不同。我想循环播放项目,以便在循环播放时可以跳过某个项目。 问题答案: 该代码试图在迭代列表时修改列表。我在任何情况下都不会这样做。 你可以使用运算符跳过列表中的每三个项目。 关于我的示例的其他要点与中的新语法有关。 我使用列表推导定义t,因为它在中有效(请参见下文) t是中的函数 现在,的行为类似于,但它适用于任意大小的值。后者不再存在。

  • 问题内容: 我知道您不应在遍历列表时添加/删除项目。但是,如果不更改列表长度,是否可以修改要迭代的列表中的项目? 还是应该迭代列表索引?像那样: 问题是:以上两种方式都是允许的,还是只有第二种是没有错误的? 如果答案是肯定的,以下代码段是否有效? UPD。我想在python文档中看到“允许这些操作”而不是某人的假设。 问题答案: 可以这么说,您 不是在 修改列表。您只是在修改列表中的元素。我不认为

  • 问题内容: 假设我们有一个Python字典,我们正在像这样迭代它: (并且仅仅是一些黑盒转换。) 换句话说,我们尝试在使用对其进行迭代的同时向其中添加/删除项目。 这个定义好吗?您能否提供一些参考来支持您的答案? (很明显,如果损坏了该如何解决,所以这不是我所追求的角度。) 问题答案: 在python文档页面(针对2.7)上明确提到了 使用而添加或删除字典条目可能会产生一种或无法遍历所有条目。 对

  • 当我使用temp=iterator.next()时,sort方法会导致并发修改错误。你能帮我解决并发修改错误吗。我给出了整个类的代码,但我只是尝试完成sort方法。事先谢谢你的帮助。 我必须对ArrayList中的所有数组进行排序。

  • 在Java8流中,允许我修改/更新内部的对象吗?为。:

  • 问题内容: 假设我有以下几种类型: 我想迭代节点的属性以更改它们。 我本来希望能够做到: 但是由于不是指针,所以这行不通,我必须这样做: 有没有更简单或更快速的方法?是否可以直接从中获取指针? 显然,我不想仅仅为了迭代而更改结构,更冗长的解决方案不是解决方案。 问题答案: 不,您想要的缩写是不可能的。 原因是从您要遍历的切片中复制值。关于范围的规范说: value (if 2nd variable