【问题标题】:For loop returning odd valuesFor 循环返回奇数值
【发布时间】:2019-04-24 16:04:11
【问题描述】:

我有两个要遍历的列表:

efw = [13.882352941176457, 10.854092526690406, 94.25675675675676, 17.851739788199694, 14.63844797178131, 8.166189111747846, 5.278592375366564, 3.4129692832764347, -6.413612565445015, 11.678832116788328, 23.859649122807003, 4.545454545454564, 10.105580693815996, -3.562340966921118, -0.6684491978609763, 2.285714285714291, 8.505747126436791]

gini = [3.9215686274509887, 6.190476190476191, -7.733812949640296, -16.608391608391603, -13.458262350936979, 7.505518763796926, -12.884615384615394, -20.21276595744681, -19.839679358717433, -10.885608856088568, -12.891986062717764, -15.56420233463035, -12.66540642722116, -12.802768166089962, -11.336032388663975, -13.507625272331147, -1.882845188284521]

我想根据giniefw 中的值创建两个带有+- 的新列表。如果gini 中的值为正,则应将+ 添加到g 列表中。与 eefw 列表相同。我试过了:

g = []
e = []
for n in gini:
    if n > 0:
        g.append("+")
    g.append("-")

for f in efw:
    if f > 0:
        e.append("+")
    e.append("-")

但是对于gini 中的一些正值,有一个- 符号...为什么for 循环将错误的符号附加到新列表中?

【问题讨论】:

  • 您不需要在您的情况下添加其他内容吗?数组中的每个值都将在当前代码中附加“-”
  • 是的!添加elif 解决了!

标签: python list loops for-loop append


【解决方案1】:

添加else 解决了它。

g = []
e = []
for n in gini:
    if n > 0:
        g.append("+")
    else:
        g.append("-")


for f in efw:
    if f > 0:
        e.append("+")
    else:
        e.append("-")

【讨论】:

  • 为什么要使用elif?您应该只使用 else 并摆脱 pass 语句。
  • 使用continue语句也可以简化代码
  • 你可以通过列表理解更好地做到这一点:["+" if i>0 else "-" for i in gini]
  • 如果其中一个元素是0,您的代码将为其添加“-”号。你不应该有一个案例吗?
猜你喜欢
  • 2011-11-25
  • 2016-09-03
  • 1970-01-01
  • 2016-08-23
  • 2015-08-08
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
  • 2020-06-18
相关资源
最近更新 更多