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 全局方法
    能删除列表指定位置的元素,也可以清空列表,字典也可以用del
    list = [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() 可以将数值列表或字符串的列表进行排序。
    # 正序
    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() 方法应注意:
    • 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)
      

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
    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
    
    这里可以想一下,为什么用clear()删除字典不出现异常呢?
    因为: 用 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'}
    

你可能感兴趣的文章:

posted @ 2019-07-20 18:19  wlswang  阅读(159)  评论(0编辑  收藏  举报