Python的基本数据结构

回顾一下Python的基础数据结构,接下来工作可能更多用到的是利用Python对数据的ETL的处理以及利用Python进行自动化运维。

1.变量

Python中的变量不需要声明。但是每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

1.单个变量赋值

1
2
3
#单个变量赋值
a = 3
print(a)

2.多个变量赋值

1
2
3
# 多个变量赋值
a = b = c = 2
print(a, b, c)

3.多个对象指定多个变量

1
2
3
#多个对象指定多个变量
a, b, c = 1,2,"michaeljian"
print(a,b,c)

2.标准数据类型

Python3 中有六个标准的数据类型:

  • Number(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Dictionary(字典)

Python3 的六个标准数据类型中:

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

其中属于集合类型的数据类型有 列表、元组及字典

1、数字(Number)

Python3支持Int、float、Bool和Complex(复数)。通过type函数可以判断每个变量的类型。

1
2
a, b, c, d = 20, 5.5, True, 4+3j
print(type(a), type(b), type(c), type(d))

此外也可以通过isinstance函数判断变量的类型。

1
2
print(isinstance(a,int))
print(isinstance(b,float))

isinstance 和 type 的区别在于:

  • type()不会认为子类是一种父类类型。
  • isinstance()会认为子类是一种父类类型。

2、字符串(String)

Python中的字符串用单引号'或双引号''括起来的,同时使用反斜杠\转义特殊字符。

字符串的截取的语法格式如下:

1
变量[头下标:尾下标]

索引值为0则表示从前面开始,为-1为从末尾开始。

img

加号+是字符串的连接符,星号*表示复制当前字符串,紧跟的数字为复制的次数。

1
2
3
4
5
6
7
8
9
10
str = 'Michaeljian'

print(str) # 输出字符串
# 前闭后开
print(str[0:-1]) # 输出第一个到倒数第二个的所有字符串
print(str[-1]) # 输出字符串的第一个字符
print(str[2:5]) # 输出第三个开始到第五个的字符
print(str[2:]) # 输出从第三个开始的后的所有字符
print(str*2) # 输出字符串两次
print(str+'Jerry')

结果如下:

image.png

Python使用反斜杠()转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个r,表示原始字符串。

1
2
print('Michaeljia\nJerry')
print(r'Michaeljia\nJerry')

image.png

注意:Python中的字符串具有不可变性。

3、列表(List)

3.1、列表的概念

List(列表)是Python中使用最频繁的数据类型,列表可以完成大多数集合类的数据结构的实现。列表中元素的类型可以不相同,它支持数字、字符串甚至可以包含列表(所谓嵌套)。

  • 列表没有固定的大小,不像字符串,其大小是可变的。
  • 列表是写在方括号之间的,用逗号分隔开的元素列表。
  • 和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所有元素的新列表。这意味着切片操作返回列表一个新的拷贝副本

列表截取的语法格式如下:

1
变量[头下标:尾下标]

索引值以0为开始值,-1位从末尾的开始位置。

img

加号+是列表连接运算符,星号*是重复操作。

1
2
3
4
5
6
7
8
9
list_1 = ['abcd',634,2.34,'Michaeljian','\n']
list_2 = [123,'Jerry']

print(list_1) # 输出完整列表
print(list_1[0]) # 输出列表第一个元素
print(list_1[1:3]) # 输出第二个到第四个元素
print(list_1[2:]) # 输出从第三个元素开始的所有元素
print(list_2*2) # 输出两次列表
print(list_1+list_2) # 连接列表

结果如下:

image.png

与Python字符串不一样的是,列表中的元素是可以改变的。list内置了很多方法,例如append()、pop()等等。

注意:

  • 1、List写在方括号之间,元素用逗号隔开。
  • 2、和字符串一样,list可以被索引和切片。
  • 3、List可以使用+操作符进行拼接。
  • 4、List中的元素是可以改变的。

Python列表截取可以接收第三个参数,参数作用是截取步长,以下实例在索引1到索引4的位置并设置为步长为2(间隔一个位置)来截取字符串。

1
2
3
4
5
6
7
8
list_1 = ['abcd',634,2.34,'Michaeljian','\n']
# 从正向取数
print(list_1[1:4:2])
# 从反向取数
print(list_1[-1:-4:-2])
# 结果如下
[634, 'Michaeljian']
['\n', 2.34]
3.2、列表的循环

最常用的遍历列表的方式是使用 for 循环。语法和字符串遍历类似:

列表的循环

如果你只需要读取列表中的元素,这种方法已经足够。然而,如果你想要写入或者更新列表中的元素,你需要通过下标访问。一种常用的方法是结合内置函数 range 和 len :

image

4、元组(Tuple)

元组与列表类似,不同之处在于元组的元素不能修改。元组写在小括号()里,元素之间用逗号隔开。元组中的元素类型也可以不相同

1
2
3
4
5
6
tuple = ('abcd',634,2.34,'Michaeljian','\n')
print(tuple) # 输出完整元组
print(tuple[0]) # 输出元组的第一个元素
print(tuple[1:3]) # 输出第二个元素到第四个元素
print(tuple[2:]) # 输出第三个元素开始的所有元素
print(tuple*2) # 输出两次元组

image.png

虽然元组的元素不可改变,但它可以包含可变的对象,比如list列表。

1
2
3
4
list_2 = [123,'Jerry']
tuple = ('abcd',634,2.34,'Michaeljian','\n',list_2)
list_2.append('MJ')
print(tuple) # 输出完整元组

结果如下:

image.png

注意:

  • 1、与字符串一样,元组的元素不能修改。
  • 2、元组也可以被索引和切片,方法一样。
  • 3、注意构造包含0和1个元素的元组的特殊语法规则。
  • 4、元组也可以使用+操作符进行拼接。

5、集合(Set)

集合是由一个或数个形态各异的大小整体组成的,构成集合的食物或对象称作元素或是成员。其基本功能是进行成员关系测试和删除重复元素。可以使用大括号{}或者set()函数创建集合,注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。

1
2
3
parame = {vaelue1,value2}
# 或者
set{value}
1
2
3
4
5
6
7
8
set_1 = {'abcd',634,2.34,'Michaeljian','\n','Michaeljian'}
print(set_1) # 输出集合,重复的元素被自动去掉

#成员测试
if 'Michaeljian' in set_1:
print('Michaeljian在集合中')
else:
print('Michaeljian不在集合中')

结果如下:

image.png

集合输出时候的顺序是乱序的,同时进行了去重处理。而列表的输出是按原有顺序输出,同时不做去重处理。

6、字典(Dictionary)

字典是Python中另一个非常有用的内置数据结构。列表是有序的对象集合,字典是无序的对象集合。两者的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移量存取的

字典是一种映射类型,字典用{}标识,它是一个无序键(key):值(value)的集合。键必须使用不可变类型,在同一个字典中,键必须是唯一的,而值不是唯一的

1
2
3
4
5
6
7
8
9
10
# 创建一个空字典
dict = {}
dict['one'] = 'Michealjian'
dict[2] = 'Jerry'
print(dict)
# 输出所有的键
list = dict.keys()
print(list)
# 输出所有的值
print(dict.values())

结果如下:

image.png

注意:

1、字典是一种映射类型,它的元素是键值对。

2、字典的关键字必须为不可变类型,且不能重复。

3、创建空字典使用{}

2.Python数据类型转换

在很多时候,我们需要对数据类型进行相互的转换,以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。

image.png

3.参考资料

1、菜鸟教程

2、https://learnku.com/docs/tutorial/3.7.0/controlflow/3506

文章目录
  1. 1. 1.变量
  2. 2. 2.标准数据类型
    1. 2.1. 1、数字(Number)
    2. 2.2. 2、字符串(String)
    3. 2.3. 3、列表(List)
      1. 2.3.1. 3.1、列表的概念
      2. 2.3.2. 3.2、列表的循环
    4. 2.4. 4、元组(Tuple)
    5. 2.5. 5、集合(Set)
    6. 2.6. 6、字典(Dictionary)
  • 2.Python数据类型转换
  • 3.参考资料