1.元祖
1.什么是元祖(tuple)
元祖是python提供的容器型数据类型(序列),不可变,有序
元祖就是不可变的列表,一般用来保存一些不容修改的数据。
形式:(元素1,元素2,元素3....)
2.元素
tuple1 = ()
print(tuple1,type(tuple1))
() <class 'tuple'>
(1)如果一个元祖中只有一个元素,这个元素后面必须加逗号
tuple2 = (10,)
tuple3 = (10)
print(tuple2,type(tuple2),tuple3,type(tuple3))
(10,) <class 'tuple'> 10 <class 'int'>
(2)元祖数据中小括号可以省略。(多个数据直接用逗号隔开,其实表示的还是一个元祖)
3.获取元素:和列表一样
tuple1 = ('周1', '周2', '周3')
print(tuple1[1])
print(tuple1[2])
for i in tuple1:
print(i)
周2
周3
周1
周2
周3
(1)让变量的个数和元祖中元素的个数保持一致,来一一获取元祖中的值
point = (100, 50)
x, y = point
print(x,y)
100 50
a, b, c = 10, 20, 30
(2)让多个变量同时获取元祖中的元素的时候,可以在一个变量前加号
将这个变量变成一个列表,来获取不带的变量获取后剩下的数据。(带*的变量只能有一个)
student = ('小米', 18, 20, 89, 30, 32, 50)
name, age, *score = student
print(name, age, score)
name, *scoer, age,a = student
print(name, age, a, score)
小米 18 [20, 89, 30, 32, 50]
小米 32 50 [20, 89, 30, 32, 50]
2.字典
1.什么是字典(dict)
字典是pytho提供的容器型数据类型(序列),可变的,无序
{键值对1,键值对2,键值对3.....} ---字典的元素就是键值对
键值对---- 以’键:值’的形式成对出现
键(key) ----要求不可变、唯一(建议用字符串做key,作用:对数据进行说明和区分)
值(value) ----任何类型的数据都可以作为值
dic1 = {10: 100, 'a': 100, (1, 2): 100}
print(dic1,len(dic1))
{10: 100, 'a': 100, (1, 2): 100} 3
2.元素的操作
(1)查 --获取值
字典[key] ---获取字典中key对应的value,如果key不存在会报错。
字典.get(key) ---获取字典中key对应的value。
(如果key不存在,结果不报错,返回None)
字典.get(key,默认值) ---获取字典中key对应的value。(如果key不存在不报错,返回默认值)
dic1 = {10: 100, 'a': 100, (1, 2): 100}
print(dic1[10])
print(dic1.get('b'))
print(dic1.get('b','hi'))
100
None
hi
3.遍历字典
1)直接通过for循环遍历字典的时候,获取到的是所有的key
dic1 = {10: 100, 'a': 100, (1, 2): 100}
for i in dic1:
print(dic1[i])
100
100
100
2)间接遍历(数据量多的时候不用)
dic1 = {10: 100, 'a': 100, (1, 2): 100}
for value in dic1.values():
print(value)
100
100
100
dic1 = {10: 100, 'a': 100, (1, 2): 100}
print(dic1.items())
for key, value in dic1.items():
print(key, value)
dict_items([(10, 100), ('a', 100), ((1, 2), 100)])
10 100
a 100
(1, 2) 100
4.增/改
字典[key] = value ---如果key存在,修改key对应的值;如果key不存在,就添加键值对
dic1 = {10: 100, 'a': 100, (1, 2): 100}
dic1['k'] = 50 #增
print(dic1)
dic1['a'] = 'abc' #改
print(dic1)
print(dic1.get('a'))
{10: 100, 'a': 100, (1, 2): 100, 'k': 50}
{10: 100, 'a': 'abc', (1, 2): 100, 'k': 50}
abc
5.删
1)del 字典[key] ----删除key对应的键值对,如果key不存在会报错
2)字典.pop(key) ----取出字典中key对应的值,如果key不存在会报错
dic1 = {10: 100, 'a': 100, (1, 2): 100}
del dic1['a']
dic1.pop(10)
print(dic1)
{(1, 2): 100}
6.字典相关操作
1)运算符:不支持数学运算,比较运算符只支持比较相等,不支持比较大小
2)in / not in
key in 字典 ---判断字典中是否存在指定的key
dic1 = {10: 100, 'a': 100, (1, 2): 100}
print('a' in dic1)
True
3)len ----键值对的个数
4)dict
能转换成字典的数据要求:数据本身是序列,序列中的每个元素也是序列,而且也是长度为2的序列,并且序列中第一个元素不可变。
dic1 = {10: 100, 'a': 100, (1, 2): 100}
print(list(dic1))
7.相关方法
1)clear
字典.clear() -----清空字典
2)copy
字典.copy() --拷贝字典中的键值对产生一个新的字典
a = {'1':4}
b = a.copy()
a['2'] = 0
print(a,b)
{'1': 4, '2': 0} {'1': 4}
3)fromkeys
dict.fromkeys(序列,值) ---创建一个新的字典,字典的key是序列的元素,key对应的value是指
new_dict = dict.fromkeys('hello',90)
print(new_dict)
{'h': 90, 'e': 90, 'l': 90, 'o': 90}
4)keys, valus, items
字典.keys() ---获取字典中所有的key,结果是一个序列
字典.values() ---获取字典中的所有的value,结果是一个序列
字典.items() ---同时获取字典中的key和valu,key和valu以元祖的形式返回
dic1 = {10: 100, 'a': 100, (1, 2): 100}
print(dic1.keys())
print(dic1.values())
print(dic1.items())
dict_keys([10, 'a', (1, 2)])
dict_values([100, 100, 100])
dict_items([(10, 100), ('a', 100), ((1, 2), 100)])
5)setdefault
字典.setdefault(key,value) ---添加键值对(如果已经存在则不改变原字典)
dic1 = {10: 100, 'a': 100, (1, 2): 100}
dic1.setdefault('tel',101)
print(dic1)
{10: 100, 'a': 100, (1, 2): 100, 'tel': 101}
6)update
字典1.update(字典2) ---使用字典2中的键值对取更新字典1;不存在添加,存在更新
dict1 = {'a': 1, 'b': 2, 'c': 3}
dict2 = {'b': 200, 'd': 300, 'e': 400}
dict1.update(dict2)
print(dict1)
{'a': 1, 'b': 200, 'c': 3, 'd': 300, 'e': 400}
3.集合
1.什么是集合(set)
容器型数据类型(序列),可变、无序
2.集合中的元素
{元素1,元素2,元素3....}
元素:不可变数据、唯一(自带去重功能)
注意: 空集合 = set() {}大括号不表示空集合
set1 = {}
set2 = {1, 'abc', (1, 2), True}
print(set2)
{(1, 2), 1, 'abc'}
s = 'affoajagjohufakmgiaogmiaf'
print(''.join(set(s)))
ghaimoufkj
3.元素相关的操作
1)查
集合不能单独获取指定的某一个元素,只支持遍历
set4 = {12,34,56,2,7,88}
for i in set4:
print(i,end=' ')
34 2 7 12 56 88
2)增
集合.add(元素) ------往集合中添加一个元素
集合.update(序列) ----将序列中的元素添加到集合(自带去重)
set2 = {2}
set2.add(199)
print(set2)
set2.update('ab',{'2':1})
print(set2)
{2, 199}
{'2', 2, 'a', 199, 'b'}
3)删
集合.remove(元素) ----删除集合中指定的元素
set2 = {'2', 2, 'a', 199, 'b'}
set2.remove('a')
print(set2)
{2, 199, '2', 'b'}
(*)4数学集合运算
1)并集: |
set1 = {1,2,3,4,5,6}
set2 = {4,5,6,7,8}
print(set1 | set2)
{1, 2, 3, 4, 5, 6, 7, 8}
2)交集:& ---求两个集合公共的部分
print(set2 & set1)
3)差集:-
集合1 - 集合2 ----获取集合1中除了集合2以外的部分
print(set1 - set2)
4)补集:集合1 ^ 集合2
求两个集合中除了公共部分以外的部分
5)包含关系
集合1 >= 集合2 ---集合1中是否包含集合2
集合1 <=集合2 ---集合2中是否包含集合1
print({1,2,3,4} >= {1,2})
网友评论