元组内置方法
- 作用:多个装备,多个爱好,多门课程,多个女朋友
- 定义:()内可以有多个任意类型的值,逗号分隔元素
- 常用操作+内置方法:常用操作和内置方法:
- 如果元组只有个一元素,必须得加逗号
使用方法
索引取值
tup = (1, 2, 3) print(tup[0])
索引切片
print(tup[0:3])
for循环
for i in tup: print(i)
成员运算
print(0 in tup)
len长度
print(len(tup))
index获取元素索引
print(tup.index(1))
count计数
print(tup.count(2))
字典数据类型内置方法
作用:存多个值,但每个值都有一个key与值对应,key对值有描述功能。
定义:{}内用逗号分隔开多个元素,没个元素都是key:value的形式,value可以是任意数据类型,而key通常应该是字符串类型,但是key必须位不可变类型
常用操作+内置方法:常用操作和内置方法,需掌握为一周
优先掌握
按key存取值/按key修改值
dic = {'a': 1, 'b': 2, 'c': 3} print(dic['a']) dic=['a']=4 print(dic)
长度len
dic = {'a': 1, 'b': 2, 'c': 3} print(len(dic))
成员运算in 和not in
dic = {'a': 1, 'b': 2, 'c': 3} print('a' in dic)
del 删除
dic = {'a': 1, 'b': 2, 'c': 3} del dic['a'] print(dic)
键keys(),值values(),键值对 items()
# dic之键keys()、值values()、键值对items(),python2中取出的是列表(鸡蛋);python3中取出的是元组(鸡) dic = {'a': 1, 'b': 2, 'c': 3} print(dic.keys()) print(dic.values) print(dic.inems())
循环
dic = {'a': 1, 'b': 2, 'c': 3} for k,v in dic.items(): print(k,v)
#### 需要掌握
get
dic = {'a': 1, 'b': 2, 'c': 3} print(dic.get('a'))
update
dic = {'a': 1, 'b': 2, 'c': 3} dic1 = {'d':4} dic.update(dic2)
fromkeys
dic = dict.fromkeys(['name', 'age', 'sex'], None) print(f"dic: {dic}"
setdefault
dic = {'a': 1, 'b': 2, 'c': 3} # 默认给None dic.setdefault('j', 2) dic.setdefault('a', 2) print(dic) # setdefault # 字典有这个key,就不修改,没有则增加
集合内置方法
作用:用于关系运算的集合体,由于集合内的元素无序且集合元素不可重复,因此集合可以去重,但是去重后的集合会打乱原来元素的顺序。
定义:{}内用逗号分隔开多个元素,每个元素必须是不可变类型
使用方法:
pythoners = {'jason', 'nick', 'tank', 'sean'} linuxers = {'nick', 'egon', 'kevin'} # 并集 print(pythoners | linuxers) # 交集 print(pythoners & linuxers) # 差集 print(pythoners - linuxers) # 补集 print(pythoners ^ linuxers) # add(*******) pythoners.add('oscar') print(pythoners) # pythoners.pop() # 随机删除一个 # print(pythoners)
深浅拷贝
可变/不可以
可变:值变id不变
不可变:值变id也变
拷贝(赋值)
# 如果l2是l1的拷贝对象,则l1内部的任何数据类型的元素变化,则l2内部的元素也会跟着改变,因为可变类型值变id不变。 l1 = ['a', 'b', 'c', ['d', 'e', 'f']] l2 = l1 l1.append('g') print(l1) # ['a', 'b', 'c', ['d', 'e', 'f'], 'g'] print(l2) # ['a', 'b', 'c', ['d', 'e', 'f'], 'g']
浅拷贝
```python
# 如果l2是l1的浅拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,则l2会跟着改变。
import copy
l1 = ['a', 'b', 'c', ['d', 'e', 'f']]
l2 = copy.copy(l1)
l1.append('g')
print(l1)
# ['a', 'b', 'c', ['d', 'e', 'f'], 'g']
print(l2)
# ['a', 'b', 'c', ['d', 'e', 'f']]
l1[3].append('g')
print(l1)
# ['a', 'b', 'c', ['d', 'e', 'f', 'g'], 'g']
print(l2)
# ['a', 'b', 'c', ['d', 'e', 'f', 'g']]
```
1. 深拷贝
```python
# 如果l2是l1的深拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,l2也不会变,即l2永远不会因为l1的变化而变化。
import copy
l1 = ['a', 'b', 'c', ['d', 'e', 'f']]
l2 = copy.deepcopy(l1)
l1.append('g')
print(l1)
# ['a', 'b', 'c', ['d', 'e', 'f'], 'g']
print(l2)
# ['a', 'b', 'c', ['d', 'e', 'f']]
l1[3].append('g')
print(l1)
# ['a', 'b', 'c', ['d', 'e', 'f', 'g'], 'g']
print(l2)
# ['a', 'b', 'c', ['d', 'e', 'f']]
```