Python 数字和if-else语句之间的范围

Python 数字和if-else语句之间的范围,python,list,numpy,range,iterable,Python,List,Numpy,Range,Iterable,我正在慢慢地自学Python,所以我遇到了一个问题 尝试逐步通过每个数字直到最后一个数字,并根据其进入的范围进行计算 NUM = [] for b in range(1,8760): if 3000 < b < 7000: NUM=500 else: NUM=300 writer.writerow([NUM]) NUM=[] 对于范围内的b(18760): 如果3000

我正在慢慢地自学Python,所以我遇到了一个问题

尝试逐步通过每个数字直到最后一个数字,并根据其进入的范围进行计算

NUM = []
for b in range(1,8760):
  if 3000 < b < 7000:
    NUM=500
  else:
    NUM=300
writer.writerow([NUM])
NUM=[]
对于范围内的b(18760):
如果3000
TypeError:“int”对象不可编辑

我在下面也试过了,它运行了,但只为整个列表打印出一个数字,而不是在两个数字选项之间进行选择

NUM = []
for b in range(1,8760):
  NUM = numpy.where((b > 3000) & (b < 7000), 500, 300)
writer.writerow([NUM])
NUM=[]
对于范围内的b(18760):
NUM=numpy,其中((b>3000)和(b<7000),500,300)
writer.writerow([NUM])

您正在将循环中的NUM更改为500或300

我想你要找的是在你的名单上加上

尝试:

这将添加到NUM,根据您的if条件,您将得到500和300的列表


您可以在python文档中看到这种结构是如何工作的

你是说这个吗

NUM = []
for b in range(1,8760):
  if 3000 < b < 7000:
    NUM.append(500)
  else:
    NUM.append(300)
writer.writerow(NUM)
NUM=[]
对于范围内的b(18760):
如果3000
你能粘贴准确的错误和它所指的行吗?
NUM=300
-你知道此时
NUM
不再是一个列表吗?欢迎!如果有帮助的话,请把我的答案投上一票,并将其标记为正确:)这很有效。谢谢现在我必须弄清楚如何在csv文件中垂直打印列表。再次感谢你,不客气!如果有帮助,请把我的答案投上一票并标记为正确:)使其成为一行:
writer.writerow([map])(λx:500,如果3000@ccf:Ugh.
map
with
lambda
很糟糕,那就去理解
list
吧。选择
map
的唯一原因是现有的Python内置函数是否可以直接完成工作,否则,列表理解会更快,不会更冗长(在Py2/Py3中行为是一致的):
[[500如果3000@ShadowRanger:我同意你的看法。在这种情况下,列表理解更快。因此答案是:
writer.writerow([500如果3000
NUM.append(500)
NUM = []
for b in range(1,8760):
  if 3000 < b < 7000:
    NUM.append(500)
  else:
    NUM.append(300)
writer.writerow(NUM)