A、list添加
1.listname.extend(obj)
当然,如果希望不将被追加的列表或元组当成一个整体,而是只追加列表中的元素,则可使用列表提供的 extend() 方法。
b_list = ['a', 30]
# 追加元组中的所有元素
b_list.extend((-2, 3.1))
print(b_list)
# 追加列表中的所有元素
b_list.extend(['C', 'R', 'A'])
print(b_list)
# 追加区间中的所有元素
b_list.extend(range(97, 100))
print(b_list)
['a', 30, -2, 3.1]
['a', 30, -2, 3.1, 'C', 'R', 'A']
['a', 30, -2, 3.1, 'C', 'R', 'A', 97, 98, 99]
2.Python insert()方法插入元素
如果希望在列表中间增加元素,则可使用列表的 insert() 方法,此方法的语法格式为:
listname.insert(index , obj)
3.Python append()方法添加元素
append() 方法用于在列表的末尾追加元素,该方法的语法格式如下:
listname.append(obj)
二、list删除
1.根据索引值删除元素
删除列表中指定元素,和删除列表类似,也可以使用 del 语句实现。
a_list=[20,2.4,(3,4)]
del a_list[-1]
print(a_list)
2.根据元素值进行删除
c_list = [20, 'crazyit', 30, -4, 'crazyit', 3.4]
# 删除第一次找到的30
c_list.remove(30)
print(c_list)
remove() 方法会删除第一个和指定值相同的元素,如果找不到该元素,该方法将会引发 ValueError 错误。
3.删除列表所有元素
list 列表还包含一个 clear() 方法,正如它的名字所暗示的,该方法用于清空列表的所有元素。
三、常用方法:
1.count()方法
此方法用于统计列表中某个元素出现的次数,其基本语法格式为:
listname.count(obj)
其中,listname 代表列表名,obj 表示判断是否存在的元素。
下面代码示范了 count() 方法的用法:
a_list = [2, 30, 'a', [5, 30], 30]
# 计算列表中30的出现次数
print(a_list.count(30))
# 计算列表中[5, 30]的出现次数
print(a_list.count([5, 30]))
运行结果为:
2
1
2.index()用法
index() 方法用于定位某个元素在列表中出现的位置(也就是索引),如果该元素没有出现,则会引发 ValueError 错误。
listname.index(obj,start,end)
3.pop()用法
pop() 方法会移除列表中指定索引处的元素,如果不指定,默认会移除列表中最后一个元素。该方法的基本语法格式为:
listname.pop(index)
4.reverse()用法
reverse() 方法会将列表中所有元素反向存放。该方法的基本语法格式为:
listname.reverse()
5.sort()用法
sort() 方法用于对列表元素进行排序,排序后原列表中的元素顺序会方发生改变。sort() 方法的语法格式如下:
listname.sort(key=None, reserse=False)
可以看到,和其他方法不同,此方法中多了 2 个参数,它们的作用分别是:
key 参数用于指定从每个元素中提取一个用于比较的键。例如,使用此方法时设置 key=str.lower 表示在排序时不区分字母大小写。
reverse 参数用于设置是否需要反转排序,默认 False 表示从小到大排序;如果将该参数设为 True,将会改为从大到小排序。
B.元组
当创建的元组中只有一个元素时,此元组后面必须要加一个逗号“,”,否则 Python 解释器会将其误认为字符串。
创建元组 a_typle
a_tuple =("C语言中文网",)
print(type(a_tuple))
print(a_tuple)
#创建字符串 a
a = ("C语言中文网")
print(type(a))
print(a)
1.Python修改元组元素
1.还可以通过连接多个元组的方式向元组中添加新元素
2.对元组进行重新赋值
C.字典
一、Python 访问字典
字典中的键必须不可变
1.Python 更推荐使用 dict 类型提供的 get() 方法获取指定键的值。get() 方法的语法格式为:
dict.get(key[,default])
其中,dict 指的是所创建的字典名称;key 表示指定的键;default 用于指定要查询的键不存在时,此方法返回的默认值,如果不手动指定,会返回 None。
2.使用dict[‘one’]
二、字典方法
1. keys()、values() 和 items()方法
keys() 方法用于返回字典中的所有键;values() 方法用于返回字典中所有键对应的值;items() 用于返回字典中所有的键值对。
2. copy()方法
copy() 方法用于返回一个具有相同键值对的新字典
注意,copy() 方法所遵循的拷贝原理,既有深拷贝,也有浅拷贝。
a = {'one': 1, 'two': 2, 'three': [1,2,3]}
b = a.copy()
#向 a 中添加新键值对,由于b已经提前将 a 所有键值对都深拷贝过来,因此 a 添加新键值对,不会影响 b。
a['four']=100
print(a)
print(b)
#由于 b 和 a 共享[1,2,3](浅拷贝),因此移除 a 中列表中的元素,也会影响 b。
a['three'].remove(1)
print(a)
print(b)
拿拷贝字典 a 为例,copy() 方法只会对最表层的键值对进行深拷贝,也就是说,它会再申请一块内存用来存放 {‘one’: 1, ‘two’: 2, ‘three’: []};
而对于某些列表类型的值来说,此方法对其做的是浅拷贝,也就是说,b 中的 [1,2,3] 的值不是自己独有,而是和 a 共有。
直接赋值是浅拷贝,对字典、SET集合、数列对象是引用。元组不是。
运行结果为:
{'one': 1, 'two': 2, 'three': [1, 2, 3], 'four': 100}
{'one': 1, 'two': 2, 'three': [1, 2, 3]}
{'one': 1, 'two': 2, 'three': [2, 3], 'four': 100}
{'one': 1, 'two': 2, 'three': [2, 3]}
从运行结果不难看出,对 a 增加新键值对,b 不变;而修改 a 某键值对中列表内的元素,b也会相应改变。
3.Python update()方法
update() 方法可使用一个字典所包含的键值对来更新己有的字典。
在执行 update() 方法时,如果被更新的字典中
a = {'one': 1, 'two': 2, 'three': 3}
a.update({'one':4.5, 'four': 9.3})
print(a)
运行结果为:
{'one': 4.5, 'two': 2, 'three': 3, 'four': 9.3}
4.pop方法
pop() 方法用于获取指定 key 对应的 value,并删除这个键值对。
a.pop('one')
5. popitem()方法
popitem() 方法用于随机弹出字典中的一个键值对。
注意,此处的随机其实是假的,它和 list.pop() 方法一样,也是弹出字典中最后一个键值对。但由于字典存储键值对的顺序是不可知的,因此 popitem() 方法总是弹出底层存储的最后一个键值对。
6. setdefault()方法
setdefault() 方法也用于根据 key 来获取对应 value 的值。但该方法有一个额外的功能,即当程序要获取的 key 在字典中不存在时,该方法会先为这个不存在的 key 设置一个默认的 value,然后再返回该 key 对应的 value。
7.字典对字符串进行格式化输出
# 字符串模板中使用key
temp = '教程是:%(name)s, 价格是:%(price)010.2f, 出版社是:%(publish)s'
book = {'name':'Python基础教程', 'price': 99, 'publish': 'C语言中文网'}
# 使用字典为字符串模板中的key传入值
print(temp % book)
book = {'name':'C语言小白变怪兽', 'price':159, 'publish': 'C语言中文网'}
# 使用字典为字符串模板中的key传入值
print(temp % book)
8.fromkeys
D. set集合
一、set集合
Python 中的集合,和数学中的集合概念一样,用来保存不重复的元素,即集合中的元素都是唯一的,互不相同。
{element1,element2,...,elementn}
1.从内容上看,同一集合中,只能存储不可变的数据类型,包括整形、浮点型、字符串、元组,无法存储列表、字典、集合这些可变的数据类型,否则 Python 解释器会抛出 TypeError 错误。
2.由于 Python 中的 set 集合是无序的,所以每次输出时元素的排序顺序可能都不相同。
3.并且需要注意的是,数据必须保证是唯一的,因为集合对于每种数据元素,只会保留一份。例
二、方法
1)创建set集合的方法
- 使用 {} 创建
- set()函数创建集合
2)访问
由于集合中的元素是无序的,因此无法向列表那样使用下标访问元素。Python 中,访问集合元素最常用的方法是使用循环结构,将集合中的数据逐一读取出来。
a = {1,'c',1,(1,2,3),'c'}
for ele in a:
print(ele,end=' ')
3)删除set集合
del() 语句
4)向 set 集合中添加元素
set 集合中添加元素,可以使用 set 类型提供的 add() 方法实现.
需要注意的是,使用 add() 方法添加的元素,只能是数字、字符串、元组或者布尔类型(True 和 False)值,不能添加列表、字典、集合这类可变的数据,否则 Python 解释器会报 TypeError 错误。例如:
a = {1,2,3}
a.add((1,2))
print(a)
a.add([1,2])
print(a)
运行结果为:
{(1, 2), 1, 2, 3}
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 4, in <module>
a.add([1,2])
TypeError: unhashable type: 'list'
5)删除现有 set 集合中的指定元素,可以使用 remove() 方法
6)交集,并集
7.方法综合
E.frozenset集合
frozenset 的作用主要有两点:
1.当集合元素不需要改变时,使用 frozenset 代替 set 更安全。
2.当某些 API 需要不可变对象时,必须用 frozenset 代替set。比如 dict 的 key 必须是不可变对象,因此只能用 frozenset;再比如 set 本身的集合元素必须是不可变的,因此 set 不能包含 set,set 只能包含 frozenset。