我如何访问指数,同时在一个序列上以一个为旋转的序列?

xs = [8, 23, 45]

for x in xs:
    print("item #{} = {}".format(index, x))

所需的产量:

item #1 = 8
item #2 = 23
item #3 = 45

当前回答

要在列表理解中打印一个(指数、值)的<unk>,使用一个为旋转:

ints = [8, 23, 45, 12, 78]
print [(i,ints[i]) for i in range(len(ints))]

出口:

[(0, 8), (1, 23), (2, 45), (3, 12), (4, 78)]

其他回答

您可以使用范围(len(some_list)) 然后查看此类指数

xs = [8, 23, 45]
for i in range(len(xs)):
    print("item #{} = {}".format(i + 1, xs[i]))

或者使用Python的内置列表功能,允许您在列表上滚动并获取列表中的每个项目的指数和值。

xs = [8, 23, 45]
for idx, val in enumerate(xs, start=1):
    print("item #{} = {}".format(idx, val))
for i in range(len(ints)):
   print(i, ints[i]) # print updated to print() in Python 3.x+ 

一个简单的答案,使用一段时间的旋转:

arr = [8, 23, 45, 12, 78]
i = 0
while i < len(arr):
    print("Item ", i + 1, " = ", arr[i])
    i += 1

出口:

Item  1  =  8
Item  2  =  23
Item  3  =  45
Item  4  =  12
Item  5  =  78

您可以使用指数方法:

ints = [8, 23, 45, 12, 78]
inds = [ints.index(i) for i in ints]

在评论中强调,如果在英寸中有重复,这种方法不会工作,下面的方法应该为英寸中的任何值工作:

ints = [8, 8, 8, 23, 45, 12, 78]
inds = [tup[0] for tup in enumerate(ints)]

或替代

ints = [8, 8, 8, 23, 45, 12, 78]
inds = [tup for tup in enumerate(ints)]

如果你想得到指数和值在英寸作为列表的<unk>。

它使用列表方法在这个问题的选择答案,但与列表理解,使它更快的代码较少。

如果列表中没有双重值:

for i in ints:
    indx = ints.index(i)
    print(i, indx)