Python笔记2 标准数据类型
首先,我们知道Python 3 中,有6个标准的数据类型,它们分为可变和不可变。
不可变数据(3个):
- Number(数字)
- String(字符串)
- Tuple(元组)
可变数据(3个):
- List(列表)
- Dictionary(字典)
- Set(集合)
这是Python 3中的6个标准的数据类型,其中包括它们的基本用法和其常用的方法,下面都会列举出来,以便日后学习参考。首先,我们需要了解一下运算符,因为这些数据类型常常用到这些运算等等。
一、运算符
详见:Python 运算符
二、标准数据类型
1. Number(数字)
- Python 的数字类型有 int 整型、long 长整型、float 浮点数、complex 复数、以及布尔值(0 和 1)。
- Python 的数字类型有 int 整型、long 长整型、float 浮点数、complex 复数、以及布尔值(0 和 1)。
2. String(字符串)
- 字符串是Python中最常用的数据类型,我们可以使用单引号(’’)或者 双引号("")创建字符串。
- 字符串是由数字、字母、下划线组成的一串字符串、是编程语言中表示文本的数据类型。
2.1 处理字符串
#字符串的形式:使用''或者""创建字符串
str1 ='this is str1'
print(str1)
2.2 字符串常用的方法
- 2.2.1 大小写转换
# 1.upper() 将字符串中所有小写字母转换为大写 #字符串.upper() s1 = "hello Python" print(s1.upper()) # HELLO PYTHON #2.lower() 将字符串中所有大写字母转化为小写 #字符串.lower() s2 = "HELLO PYTHON" print(s2.lower()) # hello python #3.swapcase() 将字符串中大小写字母进行互换 #字符串.swapcase() s3 = "hello PYTHON" print(s3.swapcase()) # HELLO python #4.title() 将字符串中的字母进行标题化处理(每个单词首字母大写) #字符串.title() s4 = "hello python hello world" print(s4.title()) # Hello Python Hello World #5.capitalize() 将字符串中第一个字母变为大写 首字母大写函数 #字符串.captialize() s5 = "hello python hello world" print(s5.capitalize()) # Hello python hello world
- 2.2.2 判断字符串内容
# 1.isupper() 检测字符串是否都是大写字母组成 # 变量.isupper() # 2.islower() 检测字符串是否都是小写字母组成 # 变量.islower() # 3.istitle() 检测字符串是否符合标题要求 # 变量.istitle() # 4.isalnum() 检测字符串是否由数字和字母及文字组成 # 变量.isalnum() # 5.isalpha() 检测字符串是否由字母和文字组成 # 变量.isalpha() # 6.isdigit() 检测字符串是否由10进制字符组成(数字) * # True: Unicode数字,byte数字(单字节),全角数字(双字节) # False: 汉字数字 # Error: 无 # 变量.isdigit() # 7.isnumeric()检测字符串是否由数字字符组成(数字) # True: Unicode数字,全角数字(双字节),汉字数字 # False: 无 # Error: byte数字(单字节) # 变量.isnumeric() # 8.isspace() 检测字符串是是否由空白字符(不可见字符)组成 * # 变量.isspace()
- 2.2.3 判断以什么开头结尾
# 1.startswith() 检测字符串是否以指定的字符串开头 * # 变量.startswith('检测的字符串') # 2.endswith() 检测字符串是否以指定的字符串结尾 * # 变量.endswith('检测的字符串')
- 2.2.4 文本对齐
# 1.center() 使用指定的字符将字符串填充到指定的长度,原有内容居中对齐 # 变量.center(填充长度) # 变量.center(填充长度,填充字符) # 2.ljust()使用指定的字符将字符串填充到指定的长度,原有内容靠左对齐 # 变量.ljust(填充长度) # 变量.ljust(填充长度,填充字符) # 3.rjust()使用指定的字符将字符串填充到指定的长度,原有内容靠右对齐 # 变量.rjust(填充长度) # 变量.rjust(填充长度,填充字符) # 4.zfill() zero fill 零填充效果(即长度不够用0填充),内容靠右 # 变量.zfill(整个字符串的长度)
- 2.2.5 join() 、split()以及partition()
# 1.split() 使用特定的字符串切割字符串 * # 变量.split(切割的字符) # 变量.split(切割的字符, 切割次数) # 2.join() 使用特定字符串将容器数据连接成一个字符串 * # 特定字符串.join(容器)
- 2.2.6 删除空白字符串 strip()
# 1.strip() 去除字符串左右两侧指定的连续字符 * # 变量.strip() 默认去除左右两侧空格字符 # 变量.strip(去除的指定字符串) # 2.lstrip()去除字符串左侧指定的连续字符 # 变量.lstrip() 默认去除左右两侧空格字符 # 变量.lstrip(去除的指定字符串) # 3.rstrip()去除字符串右侧指定的连续字符 # 变量.rstrip() 默认去除左右两侧空格字符 # 变量.rstrip(去除的指定字符串)
- 2.2.7字符串替代 replace()
- 2.2.8 字符串替换 makestran(),translate()
- 2.2.7字符串格式化操作
3. Tuple(元组)
-
元组类似于列表,元组用()表示。内部元素用逗号隔开,元组是不可变的,不能二次赋值,相当于只读列表。
t = (100,'xiaoming','hello',1.23) print(t[0]) # 100 t[3] = 666 # 这是非法应用 # TypeError: 'tuple' object does not support item assignment
4. List(列表)
- 列表可以完成大多数集合类的数据结构实现,支持字符,数字,字符串等。列表是Python最通用的复合数据类型。
4.1 列表中常用的方法
- 4.1.1 append() 方法
原地修改列表对象,向列表末尾添加新元素,速度快,推荐使用list = [10,'a'] list.append('b') print(list) # 结果: [10, 'a', 'b']
- 4.1.2 insert() 方法
将指定的元素插入到列表对象的任意制定位置,这样会让插入位置后面所有的元素进行移动,会影响处理速度。当涉及大量元素时,尽量避免使用。类似发生这种移动的函数还有:remove(),pop(),del(),它们在删除末尾元素时也会发生操作位置后面元素的移动。list = [10,'a'] list.insert(1,'b') print(list) # 结果: [10, 'b', 'a']
注意: append() 和 insert() 方法是列表方法,只能在列表上调用,不能在其他值上调用,例如字符串和整型。
- 4.1.3 " + " 运算符操作
将原列表和新列表元素依次复制到新的列表对象,并不是真正的向末尾添加元素,而是创建新的列表对象。这种方式涉及大量的复制操作,对操作大量元素不建议使用。list = [10,'a'] list = list + ['b'] print(list) # 结果: [10, 'a', 'b']
- 4.1.4 extend() 方法
将目标列表的所有元素添加到本列表的末尾,属于原地操作,不创建新的列表对象。list = [10,'a'] list.extend([20,'b']) print(list) # 结果: [10, 'a', 20, 'b']
注意: 追加append() 和 扩展extend() 方法的区别:append()方法是将数据类型的元素分解添加至列表内;extend()方法为将元素作为一个整体添加。
- 4.1.5 乘法扩展
使用乘法扩展列表,生成一个新列表,新列表元素是原列表元素的多次重复。适合用于乘法扩展操作的还有,字符串,元组。list = [10,'a'] list2 = list * 3 print(list2) # 结果: [10, 'a', 10, 'a', 10, 'a']
- 4.1.6 del 全局方法
能删除列表指定位置的元素,也可以清空列表,字典也可以用dellist = [10,'a','b'] del list[1] print(list) # 结果: [10, 'b'] del list print(list) # 结果: <class 'list'>
- 4.1.7 remove() 方法
删除首次出现的指定元素,若不存在该元素抛出异常list = [10,'a','b',30,'a'] list.remove('a') print(list) #结果: [10, 'b', 30, 'a'] list.remove('c') print(list) # 抛出异常 # Traceback (most recent call last): # [10, 'b', 30, 'a'] # File "C:Desktop/Test.py", line 10, in <module> # list.remove('c') # ValueError: list.remove(x): x not in list
如果知道要删除的值在列表中的下标,del 语句就很好用。如果知道想要从列表中删除的值,remove() 方法就很好用。
- 4.1.8 pop() 方法
删除并返回指定索引位置元素,如果未指定位置则默认操作列表最后一个元素;如果pop参数索引位超出,则报错。list = [10,'a','b',30] print(list.pop(1)) # 结果: a print(list) # 结果: [10, 'b', 30] print(list.pop(6)) # 结果: IndexError: pop index out of range
- 4.1.9 sort() 排序方法
sort() 可以将数值列表或字符串的列表进行排序。
关于sort() 方法应注意:# 正序 num = [2,5,-1,3.14,8,22,10] num.sort() print(num) # 输出: [-1, 2, 3.14, 5, 8, 10, 22] print(sorted(num)) # 输出: [-1, 2, 3.14, 5, 8, 10, 22] # sort()和sorted()方法,两者用法不一样 # 逆序 # 指定reverse关键字参数为True num = [2,5,-1,3.14,8,22,10] num.sort(reverse=True) print(num) # 输出: [22, 10, 8, 5, 3.14, 2, -1] print(sorted(num,reverse=True)) # 输出: [22, 10, 8, 5, 3.14, 2, -1]
- sort() 方法要当场对列表排序。
num = [2,5,-1,3.14,8,22,10] num = num.sort() # 错误操作 print(num)
- 不能对既有数字又有字符串值的列表排序
str1 = [1,3,5,7,'hello','world'] str1.sort() print(str1) # TypeError: '<' not supported between instances of 'str' and 'int'
- sort() 方法对字符串排序时,使用"ASCII字符顺序",并不是实际的字典顺序。小写 a 在 大写 z 之后。
str1 = ['A','a','B','b','C','c'] str1.sort() print(str1) # 输出: ['A', 'B', 'C', 'a', 'b', 'c'] # 按照普通的字典顺序排序 str2 = ['A', 'a', 'B', 'b', 'C', 'c'] str2.sort(key=str.lower) # 将列表所有的项当成小写 print(str2)
- sort() 方法要当场对列表排序。
5. Dictionary(字典)
5.1 增加
- 5.1.1 给字典 新增 "键值对"
如果 “键” 已存在,则覆盖 “旧的键值对”,如果 “键” 不存在,则新增 “键值对”。info = {'name':'zz','age':18} info['age'] = 20 # 键已存在,覆盖 info['job'] = 'student' # 键不存在,新增 print(info) #结果: {'name': 'zz', 'age': 20, 'job': 'student'}
- 5.1.2 Python字典的 update() 方法
将新字典中所有键值对全部添加到旧字典对象上,如果键值对有重复直接覆盖info = {'name':'zz','age':18} info1 = {'name':'hh','sex':'男','money':8000} info.update(info1) print(info) # 结果: {'name': 'hh', 'age': 18, 'sex': '男', 'money': 8000}
5.2 删除
- 5.2.1 Python字典的 clear() 方法
删除字典内所有的元素info = {'name':'zz','age':18,'sex':'男'} info.clear() print(info) # 结果: {}
- 5.2.2 Python字典的 del 全局方法
能删除字典指定键的元素,也可以删除字典,列表也可以用 del
这里可以想一下,为什么用clear()删除字典不出现异常呢?info = {'name':'zz','age':18,'sex':'男'} del info['name'] # 删除键是'name'的键值对 print(info) # 结果: {'age': 18, 'sex': '男'} del info # 清空字典 print(info) # 抛出异常: # Traceback (most recent call last): # {'age': 18, 'sex': '男'} # File "C:/Desktop/Test.py", line 26, in <module> # print(info) # NameError: name 'info' is not defined
因为: 用 del 删除的字典不在存在, 而用clear()是清空字典内所有的元素。如果还不懂,建议你多读几遍,深刻体会下,你就会懂了,这时不得不感叹中华文化博大精深!!! - 5.2.3 Python字典的 pop() 方法
删除字典指定键所对应的值,返回值是被删除的值info = {'name':'zz','age':18,'sex':'男'} print(info.pop('name')) # 结果: zz print(info) # 结果: {'age': 18, 'sex': '男'}
- 5.2.4 Python字典的 popitem() 方法
随机返回并删除字典中的一对键和值info = {'name':'zz','age':18,'sex':'男'} pop_info = info.popitem() #随机返回并删除一个键值对 print(pop_info) # 输出结果可能为: ('sex', '男')
6. Set(集合)
注意点:集合(set)是一个无序的不重复元素序列。
# 1.创建集合
info = set('hello')
print(info)
# 可能结果: {'l', 'e', 'o', 'h'}
6.1 增加
Python 集合的添加有两种常用方法,分别是 add() 和 update()。
- 6.1.1 Python集合 add() 方法
把要传入的元素做为一个整个添加到集合中,插入位置随机info = {'h', 'e', 'l', 'o'} info.add('python') print(info) # 可能结果: {'h', 'e', 'python', 'l', 'o'}
- 6.1.2 Python集合 update() 方法
把要传入的元素拆分,做为个体传入到集合中info = {'h', 'e', 'l', 'o'} info.update('python') print(info) # 可能结果: {'n', 'e', 't', 'o', 'h', 'y', 'p', 'l'}
6.2 删除
- 6.2.1 Python集合 remove() 方法
删除集合中的元素,不存在抛出异常info = {'h', 'e', 'python', 'l', 'o'} info.remove('python') print(info) # 可能结果: {'e', 'l', 'h', 'o'}
你可能感兴趣的文章: