liusarazhang 2020-04-18
元组是python中最基本的数据结构,与列表类似,它是一个有序序列,序列中的每个元素都分配一个数字(位置、索引)。
①我们可以使用圆括号,小括号()来创建元组;
②我们可以直接将序列放在tuple(seq);
列表和元组的最本质区别,格式基本一致,元组的item不可修改。
列表创建:
nums = (1,2,3,4,5)
letters = tuple("abc")
列表是有序的序列,存在下标index。
索引从0开始;
索引支持负数;
t1 = (1,2,3) t2 = tuple("abcdef") print(t1+t2)
输出结果为:
(1, 2, 3, ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘)
t1 = (1,2,3) t2 = tuple("abcdef") print((t1+t2)*3)
输出结果为:
(1, 2, 3, ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, 1, 2, 3, ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, 1, 2, 3, ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘)
l1 = [1, 2, 3, 4] print(l1) t3 = tuple(l1) print(t3) l2 = list(t3) print(l2)
输出结果为:
[1, 2, 3, 4]
(1, 2, 3, 4)
[1, 2, 3, 4]
t1 = (1,2,3) print(len(t1))
输出结果为:
3
t2 = tuple("abcdef") print(max(t2))
输出结果为:
f
t1 = (1,2,3) print(min(t1))
输出结果为:
1
字典是python中的数据结构,是一种可变容器模型,可存储任意类型对象。
字典以键值对存储数据,key,value形式,键值使用冒号;分割,每个键值中间用逗号,分割。
字典包含在大括号,花括号{}中。
字典的创建:
d = {key: value,key: value} d1 = {"name":"jh","sex":"男","age":18} print(d1)
可以使用元组作为key,但list不可以作为key,得,key是不可重复,不可修改的。
d1 = {"name":"jh","sex":"男","age":18} print(d1["name"]) 或 print(d1.get("name"))
两种方法区别: 使用[]访问,key必须存在,否则程序运行异常; 使用get访问,key不存在,会返回none,但是不会报错;
d1 = {"name":"jh","sex":"男","age":18} d1["msg"] = "今天是个好天气!!!" print(d1) d1["age"] = 28 print(d1)
输出结果为:
{‘name‘: ‘jh‘, ‘sex‘: ‘男‘, ‘age‘: 18, ‘msg‘: ‘今天是个好天气!!!‘}
{‘name‘: ‘jh‘, ‘sex‘: ‘男‘, ‘age‘: 28, ‘msg‘: ‘今天是个好天气!!!‘}
key存在是修改操作,key不存在是添加操作。
d1 = {"name":"jh","sex":"男","age":18} #方法一 d2 = d1.pop("age") d3 = d1.pop("m","404") #如果key不存在,则可以设置返回值,如果key不存在,不设置返回值就报错 print(d1) print(d2) print(d3)
输出结果为:
{‘name‘: ‘jh‘, ‘sex‘: ‘男‘}
18
404
d1 = {"name":"jh","sex":"男","age":18} #方法二 del d1["age"] print(d1)
输出结果为:
{‘name‘: ‘jh‘, ‘sex‘: ‘男‘}
d1 = {"name":"jh","sex":"男","age":18} #方法三 #popitem() 方法返回并删除字典中的最后一对键和值。 # 第一次运行 d.popitem() print(d) # 第二次运行 d.popitem() print(d) # 第三次运行 d.popitem() print(d)
输出结果为:
{‘name‘: ‘jh‘, ‘sex‘: ‘男‘}
{‘name‘: ‘jh‘}
{}
d1 = {"name":"jh","sex":"男","age":18} d1["habby"] = "study" print(d1)
输出结果为:
{‘name‘: ‘jh‘, ‘sex‘: ‘男‘, ‘age‘: 18, ‘habby‘: ‘study‘}
字典键的特性:
①不可重复
②不可变
keys 获取所有key
d1 = {"name":"jh","sex":"男","age":18} print(d1.keys())
输出结果为:
dict_keys([‘name‘, ‘sex‘, ‘age‘])
values 获取所有值
d1 = {"name":"jh","sex":"男","age":18} print(d1.values())
输出结果为:
dict_values([‘jh‘, ‘男‘, 18])
items
d1 = {"name":"jh","sex":"男","age":18} print(d1.items())
输出结果为:
dict_items([(‘name‘, ‘jh‘), (‘sex‘, ‘男‘), (‘age‘, 18)])
pop 根据键弹出
d1 = {"name":"jh","sex":"男","age":18} print(d1.pop("name")) print(d1)
输出结果为:
jh
{‘sex‘: ‘男‘, ‘age‘: 18}
pop弹出的应该是存在的key,如果key不存在则会抛出异常。
popitem 弹出最后一组键值对:
d1 = {"name":"jh","sex":"男","age":18} print(d1.popitem()) print(d1)
输出结果为:
(‘age‘, 18)
{‘name‘: ‘jh‘, ‘sex‘: ‘男‘}
update 更新数据
d1 = {"name":"jh","sex":"男","age":18,"msg":"你真是一个小机灵鬼"} d1.update(msg="明天有冰雹") print(d1)
输出结果为:
{‘name‘: ‘jh‘, ‘sex‘: ‘男‘, ‘age‘: 18, ‘msg‘: ‘明天有冰雹‘}
clear 清除数据
d1 = {"name":"jh","sex":"男","age":18,"msg":"你真是一个小机灵鬼"} d1.clear() print(d1)
输出结果为:
{}
集合时python中最基本的数据结构,用来存储一个无序的不重复的元素序列。
集合的标志也是大括号{},中间的元素使用逗号,隔开。
s = {"123","456","666"} print(s) print(type(s))
输出结果为:
{‘666‘, ‘456‘, ‘123‘}
<class ‘set‘>
创建空集合
s2 = set() print(s2) print(type(s2)) s3 = set("123456") print(s3) print(type(s3))
输出结果为:
set()
<class ‘set‘>
{‘6‘, ‘5‘, ‘2‘, ‘1‘, ‘3‘, ‘4‘}
<class ‘set‘>
集合并没有像其它数据容器一样提供元素操作,元素操作都是通过函数实现的。
集合之间操作
- 差集
s1 = {"123","456","789"} s2 = {"123","abc","987"} sc = s1 - s2 print(sc)
输出结果为:
{‘789‘, ‘456‘}
| 并集
s1 = {"123","456","789"} s2 = {"123","abc","987"} sc = s1 | s2 print(sc)
输出结果为:
{‘abc‘, ‘789‘, ‘987‘, ‘456‘, ‘123‘}
& 交集
s1 = {"123","456","789"} s2 = {"123","abc","987"} sc = s1 & s2 print(sc)
输出结果为:
{‘123‘}
add 添加操作
s6 = {"abc","def"} s6.add("666") print(s6)
输出结果为:
{‘abc‘, ‘666‘, ‘def‘}
remove 移除指定元素
s6 = {"abc","def"} s6.remove("abc") print(s6)
输出结果为:
{‘def‘}
pop 随机移除元素
s6 = {"abc","def"} s6.pop() print(s6)
输出结果为:
{‘abc‘}
clear 清除所有元素
s6 = {"abc","def"} s6.clear() print(s6)
输出结果为:
set()
union 返回两个集合的并集
s4 = {"123","456","789"} s5 = {"123","abc","987"} su = s4.union(s5) print(su)
输出结果为:
{‘123‘, ‘456‘, ‘987‘, ‘abc‘, ‘789‘}
difference 返回两个集合的差集
s4 = {"123","456","789"} s5 = {"123","abc","987"} su = s4.difference(s5) print(su)
输出结果为:
{‘789‘, ‘456‘}
intersection 返回集合的交集
s4 = {"123","456","789"} s5 = {"123","abc","987"} su = s5.intersection(s4) print(su)
输出结果为:
{‘123‘}
symmetric difference 返回两个集合中不重复元素的集合
s4 = {"123","456","789"} s5 = {"123","abc","987"} su = s5.symmetric_difference(s4) print(su)
输出结果为:
{‘abc‘, ‘987‘, ‘789‘, ‘456‘}
空值是python中一种特殊的值,空值的类型也是一种特殊数据类型
空值使用场景
通常作为默认值使用
布尔是python中最基本的数据类型,用来存储一个真或假的数值
真 True
假 False
布尔转换为init
aa = True aa1 = int(aa) print(aa1) print(type(aa1))
输出结果为:
1
<class ‘int‘>
(True转换为int是1,False转换为int是0)
布尔转换为str
aa = True aa2 = str(aa) print(aa2) print(type(aa2))
输出结果为:
True
<class ‘str‘>
空值转换为布尔
m = None print(bool(m))
输出结果为:
False
int转换为布尔
num = 100 print(bool(num))
输出结果为:
True
(布尔转换为数字类型,True转换为数字,是1;False转换为数字,是0。
数字转换为布尔类型,0转换为False,其余数字都是True。)
str转换为布尔
ss = "abc" print(bool(ss))
输出结果为:
True
(当字符串是一个空字符串,引号中什么也没有,字符串转换为布尔值,值为false。)
list转换为布尔
l1 = [] print(bool(l1)) l2 = ["1","2","3"] print(bool(l2))
输出结果为:
False
True
(空列表转换为bool类型为False,有数据的列表就是True)
tuple转换为布尔
t1 = () print(bool(t1)) t2 = (1,2,3) print(bool(t2))
输出结果为:
False
True
dict转换为布尔
d1 = {"key":"value"} print(bool(d1)) d2 = {} print(bool(d2))
输出结果为:
True
False
set转换为布尔
s1 = {1,2,3} print(bool(s1)) s2 = set() print(bool(s2))
输出结果为:
True
False
(list,tuple,dict,set中如果存在数据,转换为布尔都是True,没有数据就是False。)
常见逻辑运算符
b1 = False b2 = True bn1 = not b1 bn2 = not b2 ba1 = b1 and b2 print(ba1) ba2 = bn1 and bn2 print(ba2) ba3 = b2 and bn1 print(ba3)
输出结果为:
False
False
True
b1 = False b2 = True bn1 = not b1 bn2 = not b2 bo1 = b1 or b2 print(bo1) bo2 = b1 or bn2 print(bo2)
输出结果为:
True
False
b1 = False b2 = True bn1 = not b1 bn2 = not b2 print(b1) print(b2) print(bn1) print(bn2)
输出结果为:
False
True
True
False