Python 列表常见基本方法

以下所有list代表列表对象

  • 增: list.append(); list.insert(1,x)
  • 删: list.clear(); list.remove(); list.pop(x); del(list[index])
  • 改:; list[x]=a {直接用元素下表修改}
  • 查: list.index(value,[start [,stop]]); 用in判断 x in list
  • 合并: list.extend(list2)

PS: 合并也可以用加号(+)来进行两个列表的合并,但是要注意,采用extend()方法,原list地址不会改变,而使用list=list+list2时,list的地址会改变;但是还有一个情况,就是用增量赋值的加法,list的地址还是不会改变,即list+=list2。此现象与数字赋值运算中的现象不同,数字赋值运算中,增量赋值会改变最左边变量的地址。

  • 排序(依据ASCII码): list.sort(key=None, reserve=False)
    key为可选参数 用于指定在比较前,调用某种函数对列表元素进行处理,如key=str.lower(lower为将大写字母转为小写字母函数);reserve为可选参数,默认为增序排序, 若reserve=False则为减序排序。

PS: list.sort()会将排序结果直接覆盖原list,所以如果不想改变原有列表,可以使用 sorted(list,key=None, reserve=False) 函数,直接输出排序结果,使用其他变量接收,sorted()也可用于元组、字典。

  • 复制: list.copy()
    PS: copy()方法新形成的列表的内存地址与原列表地址不一样,说明通过该方法得到的是一个新的列表对象,这与赋值方法得到的结果是不一样的,赋值方法得到的列表变量与原先列表变量都指向同一地址。

  • 统计: list.count(e) 其中e代表需要统计的元素

  • 永久性反向记录:list.reverse()
    PS: 列表做反向操作后 ,列表对应的地址不变。

  • 列表解析:基于列表本身的元素操作语句解析功能,语法如下:
    [expression for iter_val in iterable]
    [expression for iter_val in iterable if cond_expr]
    其中,expression为基于元素的运算表达式,如i**2,对每个元素求平方; iter_val为从列表iterable迭代获取的元素i; if子句判断元素,cond_expr为判断元素的表达式。

>>> Nums=[i**2 for i in range(11) if i>0]
>>> print(Nums)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

上述代码的等价一般实现:

>>> Nums=[]
>>> for i in range(1,11):
	Nums.append(i**2)

	
>>> print(Nums)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章