python基础:列表

1、列表的总结

 

 

2、列表基础

2.1、列表表示 []

  • alist = ["a", "b", 1]

列表中的元素,可以是不同类型的数据类型。

 

2.2、列表是可变对象类型

可变对象是指,可“原地”修改列表。

需要注意的是:赋值、切片操作、浅拷贝、深拷贝等不同情况下,对列表自身的影响。

 

3、列表常用方法

列表是可变对象,对列表的很多操作,会在原来列表中直接修改,调用列表的常用方法会,返回的是None。

3.1、列表的切片操作

切片会重新分配新的内存空间。

切片:list[start:stop:step],包括start,不包括stop,step为步长,默认为1

可正序排列输出

也可倒序排列输出

# 分配新的内存空间,alist和blist是2个独立的内存空间
alist = ["a", "b", "c", 1]
blist = alist[:]

# 指定start和end切片开始和结束位置,左闭右开
clist = alist[0:3]

# 提取最后元素
element = alist[-1]

# 从后往前提取
dlist = alist[]

 

3.2、查找元素index

  • index(object[, start, end]):返回第1个object在列表中的下标,如未找到,会报错ValueError
alist = ["a", "b", 1, "c"]
result = alist.index("b")
>> 1

result1 = alist.index("M")
>> ValueError: 'M' is not in list

 

3.3、新增元素append、extend、insert

  • append(obj)
  • extend(iterable)
  • insert(index, obj)

以上函数返回为None,会直接在原来列表中修改。

alist = ["a", "b", "c", 1]
alist.append("M")

# 为iterable就行,不一定为list
test = ("a", "b", "c") 
alist.extend(test)

alist.insert(0, "HH")

print(alist)
>> ["HH", "a", "b", "c", 1, "M", "a", "b", "c"]

 

3.4、删除元素clear、pop、remove

  • clear():返回None,删除列表中全部元素
  • pop([index]):返回删除的元素,默认删除最后一个元素,如果列表为空或index越界,会报错IndexError
  • remove(obj):返回None,删除obj,如果obj不在列表中,会报错ValueError

会直接修改列表元素,更改原来的列表。

alist = ["a", "b", "c", 1]
alist.pop()
alist.remove("M")
alist.clear()

>> []

 

3.5、复制元素copy

  • copy():返回新复制的列表,分配新的内存空间,同全部切片[:]
alist = ["a", "b", "c", 1]

# 返回新的列表result,为result重新分配新的内存空间
result = alist.copy(alist)

 

3.6、元素计数count

  • count(obj):返回列表中obj的个数
alist = ["a", "a", "b", "c", "a"]
alist.count("a")

>> 3

 

3.7、排序列表reverse、sort

  • reverse():返回None,反向列表中的元素
  • sort():返回None,对列表中元素排序,列表中的元素需要同一数据类型

返回为None,会直接原地修改列表。

alist = ['Google', 'Runoob', 'Taobao', 'Facebook']
result = alist.sort()

>> ['Facebook', 'Google', 'Runoob', 'Taobao']

 

 

4、列表和其他数据类型转换

4.1、列表和字符串转换

内置方法list,可将序列类转换为列表。序列类包括字符串、列表、元组、字典、 集合,其中字典类的,会将字典的key转换为列表。

 

4.2、列表和元组转换

内置方法tuple,可将序列转换为元组。序列类包括字符串、列表、元组、字典、 集合,其中字典类的,会将字典的key转换为元组。

 

5、列表生成式

使用如下:

alist = [x+1 for i in range(10)]
>> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

注意对比,如将上面中的中括号[]改为括号(),那么此时不在为列表表达式,而是生成器。有关生成器的内容可参考:https://mp.csdn.net/editor/html/111184526

可以比较列表生成式和生成器的区别,2者占用内存空间如下,生成器占用较少的内存空间。

import sys

 alist = [x for x in range(10)]

print(sys.getsizeof(alist))

gen = (x for x in range(10))

print(sys.getsizeof(gen))

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值