Python数据类型介绍(二)

liusarazhang 2020-04-18

1、数据类型之元组

1.1、什么是元组?

元组是python中最基本的数据结构,与列表类似,它是一个有序序列,序列中的每个元素都分配一个数字(位置、索引)。

①我们可以使用圆括号,小括号()来创建元组;

②我们可以直接将序列放在tuple(seq);

列表和元组的最本质区别,格式基本一致,元组的item不可修改。

列表创建:

nums = (1,2,3,4,5)

letters = tuple("abc")

1.2、访问元组中的数据

列表是有序的序列,存在下标index。

索引从0开始;

索引支持负数;

1.3、常用操作

1.3.1、元组数据组合

t1 = (1,2,3)
t2 = tuple("abcdef")
print(t1+t2)

输出结果为:

(1, 2, 3, ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘)

1.3.2、元组数据重复

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‘)

1.3.3、元组与列表转换

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]

1.4、元组方法

1.4.1、len() 函数计算元组元素个数。

t1 = (1,2,3)
print(len(t1))

输出结果为:

3

1.4.2、 max() 函数返回元组中元素最大值(作比较的元素需保持数据类型一致)。

t2 = tuple("abcdef")
print(max(t2))

输出结果为:

f

1.4.3、min()函数返回元组中元素的最小值。

t1 = (1,2,3)
print(min(t1))

输出结果为:

1

2、数据类型之字典

2.1、什么是字典

字典是python中的数据结构,是一种可变容器模型,可存储任意类型对象。

字典以键值对存储数据,key,value形式,键值使用冒号;分割,每个键值中间用逗号,分割。

字典包含在大括号,花括号{}中。

字典的创建:

d = {key: value,key: value}

d1 = {"name":"jh","sex":"男","age":18}
print(d1)

可以使用元组作为key,但list不可以作为key,得,key是不可重复,不可修改的。

2.2、访问字典中的数据

d1 = {"name":"jh","sex":"男","age":18}
print(d1["name"])    或
print(d1.get("name"))
两种方法区别:
使用[]访问,key必须存在,否则程序运行异常;
使用get访问,key不存在,会返回none,但是不会报错;

2.3、字典常用操作

2.3.1、字典数据修改

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不存在是添加操作。

2.3.2、字典数据删除

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‘}
{}

2.3.3、字典数据增加

d1 = {"name":"jh","sex":"男","age":18}
d1["habby"] = "study"
print(d1)

输出结果为:

{‘name‘: ‘jh‘, ‘sex‘: ‘男‘, ‘age‘: 18, ‘habby‘: ‘study‘}

字典键的特性:

①不可重复

②不可变

2.4、字典常用方法

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)

输出结果为:

{}

3、数据类型之集合

3.1、什么是集合?

集合时python中最基本的数据结构,用来存储一个无序的不重复的元素序列。

集合的标志也是大括号{},中间的元素使用逗号,隔开。

3.2、集合创建

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‘>

3.3、集合常用操作

集合并没有像其它数据容器一样提供元素操作,元素操作都是通过函数实现的。

集合之间操作

- 差集

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‘}

3.4、集合常用方法

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‘}

4、布尔与空值

4.1、什么是空值?

空值是python中一种特殊的值,空值的类型也是一种特殊数据类型

空值使用场景

通常作为默认值使用

4.2、什么是布尔?

布尔是python中最基本的数据类型,用来存储一个真或假的数值

 True

 False

4.3、布尔数据类型转换

4.3.1、布尔转换为其它数据类型

布尔转换为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‘>

9.3.2、其它类型转换为布尔

空值转换为布尔

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。)

5、逻辑运算符

常见逻辑运算符

5.1、and 逻辑与

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

5.2、or 逻辑或

b1 = False
b2 = True
bn1 = not b1
bn2 = not b2
bo1 = b1 or b2
print(bo1)
bo2 = b1 or bn2
print(bo2)

输出结果为:

True
False

5.3、not 逻辑非

b1 = False
b2 = True
bn1 = not b1
bn2 = not b2
print(b1)
print(b2)
print(bn1)
print(bn2)

输出结果为:

False
True
True
False

相关推荐