Python 根据其他列表的标准制作列表
我有一个名为“label”的空列表,根据哪个bucket更合适,它将用0、1或2填充“label”列表 “标签”与3个“桶”关联:Python 根据其他列表的标准制作列表,python,list,for-loop,if-statement,Python,List,For Loop,If Statement,我有一个名为“label”的空列表,根据哪个bucket更合适,它将用0、1或2填充“label”列表 “标签”与3个“桶”关联: # Bucket 0: 0 -7 Days --------------------------> 0 # Bucket 1: 1 - 6 Weeks (8 - 42 Days) ----------> 1 # Bucket 2: 7+ Weeks (49+ Days) ----------------> 2 我还有一个列表,长度为23411。此
# Bucket 0: 0 -7 Days --------------------------> 0
# Bucket 1: 1 - 6 Weeks (8 - 42 Days) ----------> 1
# Bucket 2: 7+ Weeks (49+ Days) ----------------> 2
我还有一个列表,长度为23411。此列表的内容包括0天到1099天。因此,基于此列表的内容,它应该填充“标签”列表
我尝试了这个for循环
&if-else
语句来做我想做的事情,但是它给了我一个索引器:列表分配索引超出范围
:
label = []
for i in range(23411):
if ageNew[i] <= 7:
label[i] = 0
elif ageNew[i] <= 42:
label[i] = 1
else:
label[i] = 2
您不能使赋值
标签[i]=something
,因为它不存在。
改用.append()
label = []
for i in range(23411):
if ageNew[i] <= 7:
res = 0
elif ageNew[i] <= 42:
res = 1
else:
res = 2
label.append(res)
label=[]
对于范围内的i(23411):
如果ageNew[i]您无法分配标签[i]=something
,因为它不存在。
改用.append()
label = []
for i in range(23411):
if ageNew[i] <= 7:
res = 0
elif ageNew[i] <= 42:
res = 1
else:
res = 2
label.append(res)
label=[]
对于范围内的i(23411):
如果ageNew[i]您的列表为空,那么[i]
将无法按您预期的方式工作,因为该索引不存在。那么:
label = []
for i in range(23411):
val = None
if ageNew[i] <= 7:
val = 0
elif ageNew[i] <= 42:
val = 1
else:
val = 2
label.append(val)
label=[]
对于范围内的i(23411):
val=无
如果ageNew[i]您的列表为空,那么[i]
将无法按您预期的方式工作,因为该索引不存在。那么:
label = []
for i in range(23411):
val = None
if ageNew[i] <= 7:
val = 0
elif ageNew[i] <= 42:
val = 1
else:
val = 2
label.append(val)
label=[]
对于范围内的i(23411):
val=无
如果ageNew[i]尝试以下方法:
label = []
for i in lists:
if i <= 7:
label.append(0)
elif i >= 8 and i <= 42:
label.append(1)
else:
label.append(2)
#output
[0, 1, 1, 1, 2, 2, 2, 0]
label=[]
对于列表中的i:
如果i=8且i尝试以下方法:
label = []
for i in lists:
if i <= 7:
label.append(0)
elif i >= 8 and i <= 42:
label.append(1)
else:
label.append(2)
#output
[0, 1, 1, 1, 2, 2, 2, 0]
label=[]
对于列表中的i:
如果i=8且i可以将np.where
与numpy数组一起使用。例如:
list: [0, 8, 14, 14, 45, 1056, 1]
label: [0, 1, 1, 1, 2, 2, 0]
i = np.arange(23411)
label = np.where(i<=7, 0, np.where(i<=42, 1, 2))
i=np.arange(23411)
label=np.where(i您可以将np.where
与numpy数组一起使用。例如:
list: [0, 8, 14, 14, 45, 1056, 1]
label: [0, 1, 1, 1, 2, 2, 0]
i = np.arange(23411)
label = np.where(i<=7, 0, np.where(i<=42, 1, 2))
i=np.arange(23411)
label=np.where(你想用numpy
来回答问题吗?你没有使用它。要解决你的错误,请用label.append(…)
替换label[i]=…
。当label=[]
时,label[0]
是“未定义”的,因为没有第0个元素。您可能需要label.append
或列表理解。是否希望答案带有numpy
?您没有使用它。若要解决错误,请将label[i]=…
替换为label.append(…)
。当label=[]
时,label[0]
为“未定义”,因为没有第0个元素。您可能需要label.append
或列表。