python列表中的索引问题

时间:2012-01-15 00:25:57

标签: python list indexing

for i in list:
    j = i + 1
    print i - j

这将打印出list

长度的-1倍

我想要做的是打印列表中值i和下一个值之间的差异。

我清楚了吗?

3 个答案:

答案 0 :(得分:5)

for i in list:

i绑定到list的元素,而不是其索引。你可能意味着

for i in xrange(len(list)):

for i, _ in enumerate(list):

然后使用i获取索引为list[i]的元素。

(请不要调用列表list;这是Python内置函数的名称。)

答案 1 :(得分:4)

与JavaScript不同,在Python中迭代序列会产生元素,而不是索引。

for i, j in zip(L, L[1:]):
  print j - i

答案 2 :(得分:1)

试试这个:

lst = [1, 2, 3, 4]

for i in xrange(1, len(lst)):
    print lst[i-1] - lst[i]

请注意,在for i in list行中,ilist元素,而不是索引。在上面的代码中,i确实是一个索引。此外,调用变量list是一个坏主意(Python使用该名称作为其他内容)。我将其重命名为lst