小黑日记007:容器类型——第三节 列表

本文详细介绍了Python中列表的基础操作,包括创建、添加元素、定位与删除元素、遍历以及排序。此外,还深入探讨了深拷贝与浅拷贝的区别,以及列表与字符串的异同。重点讲解了列表推导式的概念、语法和应用场景,通过实例展示了其简洁高效的特性。最后,文章通过传统和推导式方法对比,阐述了列表推导式的嵌套使用。
摘要由CSDN通过智能技术生成

容器类型

一、 通用操作
二、 字符串 str
三、 列表 list
四、 元组 tuper
五、 字典 dict
六、 集合 set
七、 固定集合 frozenset



一、列表

1、定义:由 一系列变量 组成的可变 序列 容器

2、基础操作:(增删改查)

1)创建列表:[ ],list(可迭代对象)

可迭代对象:http://t.csdn.cn/y0DLT
http://t.csdn.cn/F2di3在这里插入图片描述

2)添加元素:insert / append / estend

insert:插入(索引/元素 ) 例如:list.insert(2,5)
append:末尾追加
extend:将括号内元素追加原列表 
list01 = [1,2,3] 
list02 = [4,5] 
list01.extend(list02)
print(list01)#output:[1, 2, 3, 4, 5]

3)定位元素:(索引、切片)

索引:list[5]
切片:list[1:1000000]
获取元素:print(list[5])
修改:list[1:1000000] = ["a","b","c"]

4)删除元素:(remove/ del / pop)

remove:删除指定元素。例如:
	list = [1,2,3,4,5]
	list.remove(2)
	print(list) #output:list = [1,3,4,5]
del:删除指定索引元素。 例如:
	del list[2]
	print(list) #output:list = [1,2,4,5]
pop:删除列表最后一个元素。例如:
	list.pop()
	print(list) #output:list = [1,2,3,4]

5)遍历元素:for item in list: print(item)

# 正着
for i in range(len(list))
	print(i)
# 跳着
for i in range(0,len(list),2)
	print(i)
# 倒着
for i in range(len(list)-1,-1-1)
	print(i)

6)补充:列表排序

list.sort() #从大到小排序;若要从大到小排序(reverse默认Flase改为True)
list.sort(reverse = True)#从小到大排序
reverse() #将列表中的元素反序,等同[::-1]

3、深拷贝和浅拷贝:

浅拷贝:在复制过程中只复制一层变量,不会复制深层变量绑定的对象的过程
	(详解画内存图笔记:p31)
深拷贝:复制整个依赖的变量
	(详解画内存图笔记:p32)

4、列表vs字符串:

1)列表和字符串都是序列,元素之间有先后顺序关系
2)字符串是不可变序列,列表是可变序列
3)字符串中每个元素只能存储字符,列表可以存储任意类型
4)列表和字符串都是可迭代对象
5)函数:
	将多个字符串拼接为一个:
		result = "连接符".join(列表)
	将一个字符串拆分为多个:
		列表 = “a-b-c-d”.split("连接符")
list01 = ["a", "b", "c"]
result = "-".join(list01)
print(result) #output:a-b-c
list02 = "a-b-c".split("-")
print(list02) #output:['a', 'b', 'c']

5、列表推导式:

1)语法:[对变量的操作 for 变量名 in 可迭代对象]

list = []
for item in list:
    if item % 2 == 0:
        list.append(item**2)
print(list)
list = [item**2 for item in list if item % 2 == 0]
(1)定义:使用简易的方法将可迭代对象转换为列表。
(2)语法:
变量 = [表达式 for 变量 in 可迭代对象]
变量 = [表达式 for 变量 in 可迭代对象 if 条件]
(3)说明:如果if真值表达式的bool值为Flase,则可迭代对象生成的数据将被丢弃。

6、列表推导式嵌套:

1)语法:[表达式 for 变量1 in 可迭代对象1 for 变量2 可迭代对象2]

# 传统写法
result = []
for r in ["a", "b", "c"]:
    for c in ["A", "B", "C"]:
        result.append(r + c)
print(result) #output:['aA', 'aB', 'aC', 'bA', 'bB', 'bC', 'cA', 'cB', 'cC']

# 推导式写法
result = [r + c for r in ["a", "b", "c"] for c in ["A", "B", "C"]]
print(result) #output:['aA', 'aB', 'aC', 'bA', 'bB', 'bC', 'cA', 'cB', 'cC']
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值