使用索引对列表进行迭代,但每个索引都应表示单个项



我想知道如何用索引迭代列表,但每个索引都应该表示单个项(而不是项中的字符(。我有list = ['one', 'two', 'three', 'four'],我想得到这样的每个项目:

list[0] = 'one'
list[1] = 'two'
list[3] = 'four'

我该如何使用python?

你应该避免这样索引列表,这不是一种蟒蛇式的方式,而且看起来很难看,但如果你真的想这样做,那么你可以按如下方式进行:

l = ['one', 'two', 'three', 'four']
for i in range(len(l)):
print(l[i])
# or
for i, v in enumerate(l):
print(v, l[i])

当您需要跳过列表或其他内容的某些索引,但要维护python列表迭代方法时,enumerate((非常有用

在回复评论(现已删除(时;我该如何以最Python的方式迭代列表,并根据索引号和附近元素的值等条件只包括某些元素":

要跳过某些索引,我会使用上面的枚举,例如:

l = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight']
for i, v in enumerate(l):
if i > 1 and (i % 3) == 0:
print(v, l[i])

迭代一个列表以便能够与附近的元素进行比较,这是一种看起来有点混乱的情况,当然,所以要么像上面那样使用枚举,要么可以使用zip和slice,

l = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight']
for i, v in enumerate(l):
if i > 0 and l[i - 1][0] in v:
print(i, v)
# slice method
for x, y in zip(l, l[1:]):
if x[0] in y:
print(y)
# or if you still need the index you can combine enumerate and zip like this
for i, (x, y) in enumerate(zip(l, l[1:])):
if x[0] in y:
print(i, y)

注意,";x〃;从元素0开始;y";从slicing方法中的元素1开始,因此enumerate((和enumeratezip((方法打印的索引不匹配,您需要在后一个中向i添加1

最新更新