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

xs = [8, 23, 45]

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

所需的产量:

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

当前回答

您可以使用此代码:

ints = [8, 23, 45, 12, 78]
index = 0

for value in (ints):
    index +=1
    print index, value

使用此代码,如果您需要在路径结束时重新设置指数值:

ints = [8, 23, 45, 12, 78]
index = 0

for value in (ints):
    index +=1
    print index, value
    if index >= len(ints)-1:
        index = 0

其他回答

一个具有“对手”变量的圈子设置为一个启动器,这将是一个参数,在格式化行,作为项目号。

当我们通过“i”访问列表时,“i”被格式化为项目价格(或它是什么)。

listos = [8, 23, 45, 12, 78]
counter = 1
for i in listos:
    print('Item #{} = {}'.format(counter, i))
    counter += 1

出口:

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

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

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。

它可以通过以下代码实现:

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

在这里,范围(1, len(xs)+1);如果您预计输出将从1开始,而不是0,您需要从1开始,并将1添加到估计的总长度,因为Python开始默认地从0索引数字。

Final Output:
item #1 = 8
item #2 = 23
item #3 = 45

接入指数与性能平衡方法

在 Python 3.7 中访问列表指数的最快方法是使用小、中等和大列表的列表方法。

请在下面的代码样本中查看可以使用的不同方法,以便在列表和访问指数值和其性能测量(我认为这对您有用):

# Using range
def range_loop(iterable):
    for i in range(len(iterable)):
        1 + iterable[i]

# Using enumerate
def enumerate_loop(iterable):
    for i, val in enumerate(iterable):
        1 + val

# Manual indexing
def manual_indexing_loop(iterable):
    index = 0
    for item in iterable:
        1 + item
        index += 1

查看下面的每个方法的性能测量:

from timeit import timeit

def measure(l, number=10000):
    print("Measure speed for list with %d items" % len(l))
    print("range: ", timeit(lambda :range_loop(l), number=number))
    print("enumerate: ", timeit(lambda :enumerate_loop(l), number=number))
    print("manual_indexing: ", timeit(lambda :manual_indexing_loop(l), number=number))

# Measure speed for list with 1000 items
measure(range(1000))
# range:  1.161622366
# enumerate:  0.5661940879999996
# manual_indexing:  0.610455682

# Measure speed for list with 100000 items
measure(range(10000))
# range:  11.794482958
# enumerate:  6.197628574000001
# manual_indexing:  6.935181098000001

# Measure speed for list with 10000000 items
measure(range(10000000), number=100)
# range:  121.416859069
# enumerate:  62.718909123
# manual_indexing:  69.59575057400002

因此,使用列出的方法是当指数需要时最快的 iteration 方法。

下面添加一些有用的链接:

在 Python 2.X 中,范围和 xrange 函数有什么区别? 使用列表或使用 xrange 在 Python 中使用列表更快的是什么? 范围(len(list)) 或列表(list)?

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

这是一个简单的方式:

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