如何创建具有负索引的python列表

2024-06-10 01:24:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,需要创建一个带有负索引的列表,但是到目前为止还没有成功。在

我用的是这个代码:

a = []
for i in xrange( -20, 0, -1 ):
    a[i] = -(i)
    log.info('a[{i}]={v}'.format(i=i, v=a[i]))
else:
    log.info('end')

得到的日志输出为

^{pr2}$

顺便说一句,我使用了一个名为quantopian的网站,所以日志信息从他们的基础设施,只需将输出打印到web控制台。在

我做错什么了?在

提前谢谢你的帮助。在


Tags: 代码ininfolog信息format列表for
3条回答

唯一让我印象深刻的是

 for i in xrange( -20, 0, -1 ):

似乎非常错误,因为第三个参数是步长。。。从-20开始,每一步走-1,意味着下一个数字是-21

下面是一个语法错误

^{pr2}$

你应该做a = [None]*20

此代码:

xrange( -20, 0, -1 )

尝试从-20向后(独占)到0(即通过-21、-22等),因为这是在“错误”的方向上,迭代将立即停止而不产生任何元素。This page为您提供了一个更具技术性的解释(尽管它是针对range,这有点类似):

[...] if step is negative, the last element is the smallest start + i * step greater than stop.

此外,您正试图写入一个索引不存在的列表(不要介意您希望它们为负-负索引在Python中有特殊含义)-如果执行进入循环主体,这将是一个问题。列表的工作方式与关联数组不同-不能为任意键设置值。在

如果您能告诉我们您期望的输出是什么,我们可以帮助您解决这两个问题。在

如果你用的是全天派,你最好熟悉一下纽比和熊猫。例如:

>>> import numpy as np 
>>> -1*np.arange(20)

array([  0,  -1,  -2,  -3,  -4,  -5,  -6,  -7,  -8,  -9, -10, -11, -12,
       -13, -14, -15, -16, -17, -18, -19])

然后您将得到a[1]==-1a[5]==-5

相关问题 更多 >