标签存档: list

查找统计Python列表中的重复元素

python 列表 字典有一个xml配置文件,里面配置了许多关键词,由于许多人维护这个配置文件,导致关键词有可能重复,引发一些问题。现在用正则将所有关键词提取到一个pyhton的list 里面,那么如何快速的统计出那些是重复的呢?形如aa=[1,2,2,3,2,4]的一个list,其中有重复元素,由于集合中重复元素无意义,所以bb=list(set(aa))可很容易得到去除重复的列表[1,2,3,4]。若比较aa和bb的长度,很容易发现有重复,但无法指出重复的元素是哪些。

继续阅读 »

Python的引用造成的特殊问题

python listPython中有一些不同于传统语言的特点。比如对象赋值,肯定传递的是对象。比如以下例子:a=[1,2,3] 然后b=a 那么a和b两个list均为[1,2,3], 若再执行a+=[4,5] 则a,b值均变为[1,2,3,4,5] 然而若写成a=a+[4,5] 则a值为[1,2,3,4,5]而b值仍为[1,2,3] 这是因为a+=是在原位置修改(list是可变对象),而+运算符无论何时,都会创建新的对象,即使操作数本身就是可变对象本身。 所以新选手要小心啊。

Python的引用和深层拷贝

python list copy引用是Python语言动态性的基础之一,但引用也带来了一些副作用。Python中的对象均以引用方式访问,比如一个列表对象:a1=[1,2,3],然后定义列表对象:a2=[5,a1,’99’]。此时若修改a1的值:a1[1]=20,则a1=[1,20,3]。而此时print a2则会显示出[5,[1,20,3],’99’]。这种由引用导致的链式反应在某些情形下是非预期的,会带来一些困扰。对于例中的情况,列表的切片操作可以部分解决这个问题:

继续阅读 »

Python中的列表

python listPython中的列表功能强大,远非其它语言中的数组可比。不同于整数或字符串,列表是一个真正可变的类型,列表是序列的一种,所以可做类似于字符串一样的序列操作。如len(list),当然还有索引,切片等操作。list+[4,5,6]则类似于字符串的连接,会将两个列表合并。Python中列表不同于其它语言中数组的一个特征就是列表中允许不同类型的元素,甚至嵌套进无限深层次的列表,字典等,形成一种复杂的数据结构。

继续阅读 »