Posted by 撒得一地 on 2016年4月2日 in python教程
国外稳定加速器推荐
vypr |
Nord
有些时候想要迭代序列中的对象,同时还要获取当前对象的索引。例如,在一个字符串列表中替换索引包含“abc”的字符串。实现的方法有很多,比如可以用下面这种方法:
>>> list = ['abc','abcde','ff','abc']
>>> for string in list:
... if 'abc' in string:
... index = list.index(string)
... list[index] = 'ccc'
...
>>> list
['ccc', 'ccc', 'ff', 'ccc']
上面的例子中,不好的地方在于在替换字符串前还要搜索给定的字符串。还有另一种比较好的方法,如:
>>> list = ['abc','abcde','ff','abc']
>>> index = 0
>>> for string in list:
... if "abc" in string:
... list[index] = "ccc"
... index += 1
...
>>> list
['ccc', 'ccc', 'ff', 'ccc']
另一种方法是使用内建的enumerate函数:
>>> list = ['abc','abcde','ff','abc']
>>> for (index,string) in enumerate(list):
... if "abc" in string:
... list[index] = "ccc"
...
>>> list
['ccc', 'ccc', 'ff', 'ccc']
enumerate函数可以在提供索引的地方迭代索引-值(键值)对。
... other posts by psz1992