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

xs = [8, 23, 45]

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

所需的产量:

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

当前回答

根据此讨论:对象列表指数

Loop 对抗 iteration

在指标上旋转的当前字符串使用内置范围功能:

for i in range(len(sequence)):
    # Work with index i

超越两个元素和指标可以通过旧的字符或使用新的内置Zip功能实现:

for i in range(len(sequence)):
    e = sequence[i]
    # Work with index i and element e

for i, e in zip(range(len(sequence)), sequence):
    # Work with index i and element e

通过PEP 212 - Loop Counter Iteration。

其他回答

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

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>。

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

您可以使用一个变量,例如计算,以计算列表中的元素数量:

ints = [8, 23, 45, 12, 78]
count = 0
for i in ints:
    count = count + 1
    print('item #{} = {}'.format(count, i))
for i in range(len(ints)):
   print(i, ints[i]) # print updated to print() in Python 3.x+ 

您可以使用列表和插入字母中的表达式来获得解决方案。

这是一个简单的方式:

a=[4,5,6,8]
for b, val in enumerate(a):
    print('item #{} = {}'.format(b+1, val))