list去重
使用内置的set和list的sort函数。
>>>L = [4,3,5,3,2,5]
>>>temp = list(set(L))
>>>print temp
[2,3,4,5]
>>>temp.sort(key = L.index)
>>>print temp
[4,3,5,2]
使用遍历的方法
>>>temp = []
>>>for i in L:
>>> if i not in temp:
>>> L.append(i)
list函数
sort函数
它原地对列表进行排序,sort是使用Python标准的比较检验作为默认值,而且以递增的顺序进行排序。
可以通过传入关键字参数来修改排序行为,这是指定按名称传递的函数调用中特殊的"name=value"语法。在排序中,key参数给出了一个单个参数的函数,它返回在排序中使用的值,reverse参数允许排序按照降序而不是升序进行:
>>>L = {'abc', 'ABD', 'aBe'}
>>>L.sort()
>>>L
['ABD', 'aBe', 'abc']
>>>L.sort(key=str.lower,reverse=True)
>>>L
['aBe','ABD','abc']
列表迭代与解析
[ for k in L if ],表示在列表L中,如果expr2为真,就循环执行expr1语句并产生一个列表,此为列表推导式。
例如:L = [x**2 for x in range(5) if x>3]
列表解析比手动的for循环语句运行的更快,因为它们的迭代在解释器内部是以C语言的速度执行的,而不是以手动python代码执行的,特别是对于交大的数据集合,这是使用列表解析的一个主要的性能优点。
pop函数
>>>L = ['aa','bb','cc','dd']
>>>L.pop()
'dd'
>>>L
['aa','bb','cc']
>>>L.pop(1)
'bb'
>>>L
['aa','cc']
表达式语句和在原处的修改
表达式语句通常用于执行可于原地修改列表的列表方法:
>>>L = [1,2]
>>>L = L.append(4)
>>>L
[1,2,3]
然而,如果把这种运算写成赋值语句,试着把L赋值给更大的列表:
>>> L = L.append(4)
>>> print(L)
None
对列表调用append,sort或者reverse这类在原处的修改的运算,一定是对列表做元代的修改,但这些方法在列表修改后并不会把列表返回。事实上,他们返回的是None对象。