如何进行从后往前遍历列表 python

Python024

如何进行从后往前遍历列表 python,第1张

如果是正好在字符串结尾,可以用正则表达式的

如果不是的话,老老实实

地从前到后的匹配字符串好了。

字符串匹配算法和检索方向

是相关的,一般的算法设计都是考.

小编今天从项目引入这个天大的坑!!!

由于工作的需要,小编需要将旧表的数据迁移至新表,由于项目的需求要动态的创建表并迁移数据(表格用项目编号来区分,在模型类里面封装了创建表格的静态方法), 这个静态方法其实就是拼接sql语句。由于表格达到2000+,所以只好上线之前就迁移好数据和表格,小编花了将近一周的时间终于初见成效,但是其中有一块耗费了小编一天的时间,那就是在数据迁移的时候,遇到了不同的旧表的重复数据的迁移。我需要去掉重复的数据,所以也就有了双层的列表的遍历,删除相同数据的CNM天坑!也就是漏掉了数据,写这个经历不是为了什么,只是把自己的经验记下来,都是自己的宝贵财富。下面给大家介绍这个天坑:

look the demo:

lists = [1,2,3,4,5,6]

for list in lists:

lists.remove(list)

print(lists)

返回:[2, 4, 6]

解析:

1-问题:循环lists,想删除lists的所有元素,但实际确有数据保留了下来,

2-原因:这是因为在循环lists,并删除lists的元素时,列表的位置发生了移位,当删除“1”后,第二个元素“2”补位,这样“2”就躲过了被删除的命运,轮到“3”了,“3”被删除之后,“4”来补位,逃过一劫,以此类推!!

3-拓展:

(1)for循环是先判断对象是否为可迭代对象,不是的话直接报错,抛出TypeError异常,是的话,调用 __iter__或iter方法,返回一个迭代器

(2)不断地调用迭代器的__next__或next方法,每次按序返回迭代器中的一个值

(3)迭代到最后,没有更多元素了,就抛出异常 StopIteration,这个异常 python 自己会处理,不会暴露给开发者

4-所以在循环list时,不能循环的同时删除自身元素,而是要利用pop(下标)的删除。

不知道你是不是这个意思,

字典调用values()方法会返回Value值所构成的列表,通过两个循环就能遍历字典里的列表

data = {'a':[1,2,3],'b':[4,5,6]}

for l in data.values():

    for item in l:

        print item