目录
一、list和tuple的区别
两者都属于序列,可以储存不同种类的数据类型,一般来说list序列是可变的,可给其中的元素赋值或者扩充序列,而tuple是不可变的,无法对其元素赋值扩充元素等,但如果tuple序列中包含list这时tuple也为可以改变了
tuple_var = (1, [1,2], "1")
print(tuple_var,type(tuple_var))
(1, [1, 2], '1') <class 'tuple'>
二、python中的序列
1、元组(tuple)
元组的元素不能修改,但是可以对整个元组进行删除和组合。 元组是用小括号进行包容,元素之间通过逗号。
tuple_data = ("1", [], 1)
print(tuple_data,type(tuple_data))
('1', [], 1) <class 'tuple'>
2、字节(bytes)
python中以字节为单位来处理,用b‘’来赋值创建
bytes_var = b'1'
print(bytes_var,type(bytes_var))
b'1' <class 'bytes'>
3字符串(str)
一般用‘’或“”来表示,创建字符串只需要为变量分配一个值即可
str_var = "hello"
print(str_var)
4、列表(list)
list中元素是可以修改的,也可以扩充元素,用[ ]定义,元素用逗号隔开
list_data = [1, 2, 3]
print(list_data,type(list_data))
[1, 2, 3] <class 'list'>
三、list中所有方法的使用
1、 list.append( )
在末尾追加一个元素
list = [1, 2, 3, 4, 5, 6]
list.append(7)
print(list)
[1, 2, 3, 4, 5, 6, 7]
2、list.clear()
清除
list = [1, 2, 3, 4, 5, 6]
list.clear()
print(list)
[]
3、list.copy()
复制
list_var = [1, 5, 4, 5]
list_data = list_var.copy()
print(list_var, list_data)
print(id(list_var))
print(id(list_data))
[1, 5, 4, 5] [1, 5, 4, 5]
4、list. count()
一个元素出现的次数
list_var = [1, 5, 4, 5]
list_var.count(5)
print(list_var.count(5))
2
5、list.extend()
将其他元素增加到数列
list_data = [1, 2, 3]
list_data.extend("5")
print(list_data)
[1, 2, 3, '5']
6、list.index()
检测第一个出现的索引,即在序列中下标的位置
list_data = [1, 2, 3]
list_data.index(1)
print(list_data.index(1))
0
7、 list. insert()
插入到指定位置(下标位置,插入值)
list_data = [1, 2, 3]
list_data.insert(3,4)
print(list_data)
[1, 2, 3, 4]
8、list.pop()
删除并返回(下标位置为删除值)
list_data = [1, 2, 3]
list_data.pop(2)
print(list_data)
[1, 2]
9、list.remove()
删除(如果有一样的值,只能删除第一个)
list_data = [1, 1, 2, 3]
list_data.remove(1)
print(list_data)
[1, 2, 3]
10、 list.reverse()
将数列倒置
list_data = [1, 2, 3]
list_data.reverse()
print(list_data)
[1, 2, 3]
[3, 2, 1]
11、list.sort()
排序
list = [5, 2, 4, 3, 1, 6]
list.sort()
print(list)
[1, 2, 3, 4, 5, 6]
四、将元组和列表转换成字典
字典是一个无序、可变和有索引的集合。用{ }来编写,将其他元素转化为字典时,要对应关键字和值
dict_data1 = dict(((1,2), (3,4))) #将元组转化为字典
print(dict_data1)
{1: 2, 3: 4}
dict_data2 = dict([(5, 6), (7, 8)]) #将列表转化为字典
print(dict_data2)
{5: 6, 7: 8}
五、dict中所有方法的使用
1、dict.clear()
清除
dict_data = {1: 1, 2: 1, 3: 1, 4: 1, 5: 1}
dict_data.clear()
print(dict_data)
{}
2、dict.copy()
浅拷贝
dict_data = {1: 1, 2: 1, 3: 1, 4: 1, 5: 1}
dict_data.copy()
print(dict_data)
print(dict_data.copy())
{1: 1, 2: 1, 3: 1, 4: 1, 5: 1}
{1: 1, 2: 1, 3: 1, 4: 1, 5: 1}
3、dict.get()
通过键获取值,键不存在返回默认值
dict_data = {1: 1, 2: 1, 3: 1, 4: 1, 5: 1}
dict_data.get(3)
print(dict_data.get(3))
1
4、dinct.items()
返回字典中所有的键值对组成的列表
dict_data = {1: 1, 2: 1, 3: 1, 4: 1, 5: 1}
dict_data.items()
print(dict_data.items())
dict_items([(1, 1), (2, 1), (3, 1), (4, 1), (5, 1)])
5、dic.keys
返回字典中所有的键组成的列表
dict_data = {1: 1, 2: 1, 3: 1, 4: 1, 5: 1}
dict_data.keys()
print(dict_data.keys())
dict_keys([1, 2, 3, 4, 5])
6、dic.pop
删除并返回指定键的键值对
dict_data = {1: 1, 2: 1, 3: 1, 4: 1, 5: 1}
dict_data.pop(1)
print(dict_data)
{2: 1, 3: 1, 4: 1, 5: 1}
7、 dic.popitem
按照先进后出的原则,删除字典的元素并以(key,value)元组返回。如果字典为空,则引发KeyError
dict_data = {1: 1, 2: 1, 3: 1, 4: 1, 5: 1}
dict_data.popitem()
print(dict_data)
{1: 1, 2: 1, 3: 1, 4: 1}
8、dic.setdefault
如果键不存在于字典中,将会添加键并将值设为默认值
dict_data = {1: 1, 2: 1, 3: 1, 4: 1, 5: 1}
dict_data.setdefault(7)
print(dict_data)
{1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 7: None}
9、dic.update
字典1合并字典2,对于在字典1中存在的键,使用字典2的值进行数据覆盖
dict_data1 = {1: 1, 2: 1, 3: 1, 4: 1, 5: 1}
dict_data2 = {6: 2, 7: 2, 8:2}
dict_data1.update(dict_data2)
print(dict_data1)
{1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 2, 7: 2, 8: 2}
六、list或dict浅拷贝
赋值运算是相当于给值挂上a,b的标签,并没有改变内存地址
a = [1, 2, 3, 4, [5, 6, 9, [7, 8]]]
b = a
print(id(a))
print(id(b))
2226319752448
2226319752448
浅拷贝是创建一个对象,这个对象有着原始对象属性值的一份精准拷贝,如果属性是基本类型,拷贝的就是基本类型的值;如果属性是引用类型,拷贝的就是内存地址,如果其中一个对象改变了这个地址,就会影响到另一个对象。
a = {1: [1,2,3], 2:3, 4:5}
b = a.copy()
print(a, b)
a[1].append(4)
print(a, b)
{1: [1, 2, 3], 2: 3, 4: 5} {1: [1, 2, 3], 2: 3, 4: 5}
{1: [1, 2, 3, 4], 2: 3, 4: 5} {1: [1, 2, 3, 4], 2: 3, 4: 5}