400-616-5551

您所在位置: 首页> 学习课程> python培训班 | python中列表的操作都有哪些?

python培训班 | python中列表的操作都有哪些?

发布百知教育 来源:学习课程 2019-11-19


01

列表的删



1. pop():默认删除最后一个值,也可以指定删除下标为第几个的元素,有返回值



l = [1, 2, 3, "a", "b"]d1 = l.pop()  d2 = l.pop(2)  # 删除下标为2的元素,即删除第3个元素
print(d1)      # b print(d2)      # 3print(l)       # [1, 2, 'a']


2. del:删除指定位置的元素,也可以切片删除,没有返回值


l = [1, 2, 3, "a", "b"]
del l[1]print(l)    # [1, 3, 'a', 'b']
del l[:2]print(l)    # ['a', 'b']


3. remove:删除指定的元素


l = [1, 2, 3, "a", "b"]
l.remove(1)print(l)    # [2, 3, 'a', 'b']
l.remove("a")print(l)    # [2, 3, 'b']


4. clear():直接清空整个列表



l = [1, 2, 3, "a", "b"]
l.clear()print(l)    # []


02 

列表的改



1. 通过下标号更改对应的值



l = [1, 2, 3, "a", "b"]
# 修改第2个元素的值l[1] = 666print(l)    # [1, 666, 3, 'a', 'b']



2. 如果是单使用切片,则只是把列表里索引号对应的元素删除,再加入任何的东西,方法和列表的增中的 extend 类似



l = [1, 2, 3, "a""b"]
# 修改从第二个到第三个的值l[1:3] = [123, "abc"]print(l)      # [1, 123, 'abc', 'a', 'b']
# 修改从第二个到第三个的值(实际上对应多了一个值)l[1:3] = [777, 888, 999]print(l)      # [1, 777, 888, 999, 'a', 'b']
# 修改从第二个到第三个的值(实际上对应少了一个值)l[1:3] = [555]print(l)      # [1, 555, 999, 'a', 'b']
# 注意与上面的区别l[1:3] = 555  # 报错,提示『只能分配一个可迭代对象』

# 如果切片加了步长,则替换的个数必须一样,否则也会报错l = [1, 2, 3, "a", "b"]
l[1::2] = [11, 22, 33]print(l)      # 报错



03 

列表的其他操作



1. count():统计某个元素在列表中出现的次数



l = ["q","w","q","r","t","y"]print(l.count("q"))    # 2

# 这里注意 1 和 True 是一样的t = (1, 3, True)print(t.count(1))      # 2print(t.count(True))   # 2


2. index():从列表中找出某个值第一个匹配项的索引位置





































# 列表和字符串不同,不能用 find(),只能用 index(),找不到就报错l = ["q","w","q","r","t","y"]print(l.index("q"))    # 0print(l.index("abc"))  # 报错

######## 使用 index() 的小陷阱 ######### 列出每个元素及其对应的索引号l = ["q","w","q","r","t","y"]
# 错误方法:for i in l:    print(i, l.index(i))
# 运行结果:q 0w 1q 0r 3t 4y 5# 原因解析:列表中有相同元素时,使用 index 的话# 找到相同的元素返回的还是第一次找到该元素的索引号
# 正确方法:动态获取列表的元素for i in range(0, len(l)):    print(l[i], i) # 运行结果:q 0w 1q 2r 3t 4y 5


3. sort():在原位置对列表进行排序及反向排序


l = [3, 1, 4, 2, 5]l.sort()print(l)    # [1, 2, 3, 4, 5]
# 反向操作l = [3, 1, 4, 2, 5]l.sort(reverse=True)print(l)    # [5, 4, 3, 2, 1]


4. reverse():将列表中的元素反向存放


l = [3, 1, 4, 2, 5]

l.reverse()

print(l)    # [5, 2, 4, 1, 3]


5. 新版本的 Python 中两个列表是可以相加相乘的,形成一个新的列表









l1 = [1, 2]

l2 = [3, 4, 5]

l3 = l1 + l2

print(l3)    # [1, 2, 3, 4, 5]

l1 = [1, 2, 3]

l2 = l1 * 3

print(l2)    # [1, 2, 3, 1, 2, 3, 1, 2, 3]



6. 循环一个列表时的陷阱


######## 把列表中索引号为奇数的元素删掉 ########l = [11, 22, 33, 44, 55]
# 错误方法:for i in range(len(l)):    if i % 2 == 1:        l.pop(i) print(l)    # [11, 33, 44]
# 原因解析:循环一个列表时,最好不要改变列表的长度# 因为这样会影响列表后面元素的索引位置

# 正确方法一:l = [11, 22, 33, 44, 55]new_l = []
for i in range(len(l)):    if i % 2 == 0:        new_l.append(l[i]) l = new_lprint(l)          # [11, 33, 55]

# 正确方法二:倒叙法——从最后一个开始按条件循环删除列表元素l = [11, 22, 33, 44, 55]
for i in range(len(l)-1, -1, -1):    if i % 2 == 1:        l.pop(i) print(l)          # [11, 33, 55]

# 正确方法三:直接使用切片l = [11, 22, 33, 44, 55]print(l[0::2])    # [11, 33, 55]


注释:本文来自公众号python实用笔记


python培训班:http://www.baizhiedu.com/python2019




上一篇:python培训班 | Python到底还能“造福”多少程序员?

下一篇:应届生去公司找个Java程序员的职位需要什么技能?

相关推荐

www.baizhiedu.com

有位老师想和您聊一聊

关闭

立即申请