如何更改列表

时间:2016-10-10 07:30:19

标签: python python-2.7 nltk

我有一个列表,我希望通过手动更改索引值来显示带索引的内容。我试图以两种方式做到这一点,但它没有用。

方式1:

x=['hello','how','are','you','hope','you','are','fine','I','am','doing','work','in','python']
for i,item in enumerate(x):
  print (i,item)
  if item == 'are':
    i+=2

方式2:

x=['hello','how','are','you','hope','you','are','fine','I','am','doing','work','in','python']
for i in xrange(len(x)):
  print x[i]
  if item == 'are':
    i+=2

2 个答案:

答案 0 :(得分:1)

此处的问题是,enumerate()xrange()都会生成一系列不受i的外部更改影响的值,这是一个未连接的变量。使用@ efferalgans的建议最好的方法可能是调用next()函数两次,但这意味着存储对生成器的引用。所以你想做这样的事情:

x=['hello','how','are','you','hope','you','are','fine','I','am','doing','work','in','python']
g = enumerate(x)
for i,item in g:
  print (i,item)
  if item == 'are':
    next(g)
    next(g)

我从中看到了结果

0 hello
1 how
2 are
5 you
6 are
9 am
10 doing
11 work
12 in
13 python

答案 1 :(得分:1)

只需使用while循环。这是最简单,最清晰,最灵活的解决方案:

i = 0
while i < len(x):
    print x[i]
    if x[i] == 'are':
        i+=1
    i += 1

正如您所看到的,循环遍历字符串很简单,您可以完全自由地动态更改索引 - i只是一个普通变量。目前还不清楚你的代码实际上是做什么的,所以上面做了你的代码(如果它有效)可以做的事情:它会跳过跟随这个词是“是”这个词。 / p>