廖雪峰课程笔记-03-基本数据类型

364 阅读2分钟

高级数据类型

Python内置的这些数据类型及其常用,绝大多数的时候能解决几乎所有的问题,并且和其他语言有一点不太一样。

Python是一种动态语言,所有的数据类型都是自动匹配、可变的。

最常用的两种是List和dict

各种数据类型的定义方法

List:打了激素的数组

list是一个可变的有序表,是Python中最常用的数据类型(Pyhton没有数组),List又成打了激素的数组。 参考

特点

  • ⭐️元素数据类型不受限制。

  • 元素之间没有任何关系

  • 可以实现一系列操作,例如随时添加和删除、取切片、连接等。

定义方法

使用[xxx, xxx]这样的语法结构来定义list,例如:

list = [1, 2, (3,4), True, 'hello', 4.2]

特性

1. 索引

代码操作
list[0]拿出列表第一个元素
list[-1]拿出列表最后一个元素
list[2][0]拿出列表的第三个元素是一个元组,在拿出元组的第一个元素

2. 切片

代码操作
list[:3]拿出列表前三个元素
list[2:]拿出列表除了前两个元素外的其他元素
list[-2:]拿出列表除了后两个元素外的其他元素
list[0:3]拿出列表中0-2三个元素

3. 成员操作符in/not in

>>> 'hello' in list
True

4. 连接

使用+即可以实现list之间的连接

list1 = [1, 2]
list2 = [3, 4]
list = list1 + list2
print(list)
<<< [1, 2, 3, 4]

5. 长度

len(list)

6. list的CRUD

增加
代码操作
+常规添加,和连接一个原理
append追加一个元素到末尾
extend追加多个元素到末尾list.extend([1, 2])
insert在指定索引位置插入 list.insert(1, 'hello')
删除
代码操作
pop()传递值删除指定索引元素,默认删除最后一个元素
remove()删除指定元素 remove('hello')
查看
代码操作
count()查看某元素的出现次数
index()查看指定元素的索引值
修改

可以直接通过索引,或者切片直接赋值修改:

list[:2] = ['1', 'b']
排序

默认sort()的reverse为False,升序排列,修改为True后,则为降序排列

list.sort(reverse=True)

Tuple(元组):不可变的List

tuple一旦初始化后就不能修改,取元素的方法同list一样。

特点

  • 更加安全,优先用tuple
  • 同样可以包含不同的数据类型
  • tuple不可变,但tuple中的list可变

定义方式

⭐️在定义tuple时其元素就必需被确定好,如果定义一个空的tuple,写作:t = ()

如果想定义一个只有一个元素的tuple时要在末尾加一个逗号,写作:t=(1,)

dict(字典)

就是键-值(key-value)存储的map(映射),查找速度极快。

⭐️dict在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。比如List就是一种可变对象,所以不可以作为key。最常用的key是字符串str。

特点

  • 是一种可变容器模型,且可存储任意类型对象。
  • 查找和插入的速度极快,不会随着key的增加而变慢。
  • 需要占用大量的内存,内存浪费多。
  • 字典不能索引和切片,因为字典是无序的数据类型。
  • 字典不支持重复和连接。
  • 字典支持成员操作符,判断字典的key值是否在字典中存在: innot in

定义方式

定义一个字典:dict = {'key1': 'value1', 'key2': 'value2'}

定义一个空字典:dict = {}

特性

添加/修改

  • 直接使用等号赋值即可,如果已存在则修改:d['Jack'] = 90

  • 使用get(<key>)方法传入key,如果不存在则返回None

查看

直接使用[]即可

删除

使用pop(<key>)函数,传入删除指定key

循环

d = {1:1, 2:2, 'a':3, 'b':4}
for k,v in d.items():
    print(k ,'-->', v)

set(集合):不能重复

存储key不能重复,自动去重。set可以看成数学意义上的无序和无重复元素的集合

定义

要创建一个set,需要提供一个list作为输入集合:

s = set([1, 2, 3])

⚠️必须写成set([xx, xx, xx]),缺少set[]都会导致类型实际上是List。

特性

添加与删除

使用add(<key>)添加,使用remove(<key>)删除。

集合运算

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:

>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}

str

是一种不可变对象