一个简单的循环问题

时间:2017-04-11 16:17:45

标签: python loops

在python中相当新,我仍然遇到循环问题,我想请求你们的帮助!

以下是数据:

a = [146,780,1567,2780,3600]
b = [0.2,0.5,0.7,1,1]
c = range(3601)

我想要构建的代码的想法是:

  • 'c'中的第一个值= 1
  • 1是<= 146
  • 1与0.2连接并存储在excel表中
  • 'c'中的第二个值= 2
  • 2是<= 146
  • 2与0.2连接并存储在与另一个值相邻的相同excel表中 ...
  • 147是&gt; 146但是&lt; = 780
  • 147与0.5连接并存储在相同的excel表中 ...

基本上:测试'c'中的每个值,如果该值低于'a'的第一个索引中的值,则将'c'中的值与'b'中的值连接起来,该值与'b'中的值相同一个来自'a'。如果'c'中的值高于'a'的第一个索引值,则测试'a'中的第二个索引值,如果它低于来自'c'的测试值,则将'c'中的值附加到'c'中'b'中的值与'a'中的值相同...等等

提前感谢您的一些想法...

汤姆

1 个答案:

答案 0 :(得分:0)

执行操作

首先让我们从python的角度来看一下这个操作。我们将创建一个包含我们想要的值的列表,然后将所述列表保存为excel可读格式。

在我们的方法中,我们想循环遍历c的所有值,检查它们是否小于或等于列表const check = (a, b) => { for(let l of a) if(b.indexOf(l) >= 0) return true return false } console.log(check("IloveLinux", "weloveNodejs")) // true console.log(check("I love Linux".split(' '), "we love Nodejs".split(' '))) // true中的索引i的值,如果是,则保存{的值{1}}与a

的相应值相连

为了让我们的生活更轻松,我们可以将cb的值结合起来,这样当我们想要a的第一个值时,我们也会得到相应的{{1}的第一个值同样适用于第二,第三,......第n个值。为此,我们应用b函数,该函数根据索引将ab的所有值配对。

使用字符串完成后,添加两个数字会更容易,因此我们首先使用zip()将数字转换为字符串。然后我们使用字符串的连接运算符a来连接这两个值。最后,我们使用b将结果转换为浮点数。

使用这些知识,我们创建了以下代码片段:

str()

这里我们循环遍历+中的每个数字,对于每个数字,我们循环遍历float()a = [146,780,1567,2780,3600] b = [0.2,0.5,0.7,1,1] c = range(3601) output = [] for number in c: for a_value, b_value in zip(a, b): if number <= a_value: output.append(float(str(number) + str(b_value))) break 中的对列表。如果c中的数字小于相应的a值,我们会将b的数字和相应值合并,并将其附加到输出中。

保存为Excel格式

既然我们以列表格式输出,我们应该将其保存到一个文件中,以便可以使用Microsoft Excel打开它。由于Excel能够打开.csv文件,我们将以.csv格式将其写入。幸运的是python有一个csv模块。

我们可以像这样写一个名为c的文件:

a