python基础之数据类型及相关方法

1、概论

Ⅰ.前言

  • 1.python支持一种数据结构的基本概念是容器,容器是可包含其余对象的对象,两种主要容器有序列(列表和元组),映射(字典)。可是集合既不是序列也不是映射的容器

Ⅱ.通用操做

  • 1.索引:python中最基本的数据结构是序列,序列中每一个元素都有编号,极其位置或者索引,在映射中称键,左边从0开始,右边-1开始。
  • 2.切片:适用于字符串,列表,元组
    • 1)切片使用索引值来限定范围,从一个大的字符串中切出小的字符串
    • 2)格式: 字符串[开始索引:结束索引:步长]
    • 3)注意点:
      • 指定区间是左闭右开型,从起始位置开始,结束位的前一位结束(不包含结束位自己)
      • 从头开始,开始索引 数字能够省略,冒号不能省略
      • 到末尾结束,结束索引 数字能够省略,冒号不能省略
      • 步长默认为 1,若是连续切片,数字和冒号均可以省略
      • 倒序的话,就从-1开始,依次递减
  • 3.相加:拼接序列,可是不能拼接列表和字符串。
  • 4.相乘:重复这个序列
  • 5.成员运算符(in / not in):测试 序列中是否包含指定的成员,对字典操做时,判断的是字典的键

Ⅲ.内置函数

  • len(item):计算容器中元素个数
  • del(item):删除是变量不是数据
  • max(item):返回容器中元素最大值,若是是字典,只针对 key 比较
  • min(item):返回容器中元素最小值 ,若是是字典,只针对 key 比较
  • type(item) :查看容器数据类型
  • id() :查看变量的位置
  • list(), dict(),str() ,tuple() :各数据类型的建立函数也是转换函数
    • [注]:若是是 数字型,int(),float()进行数据转换

2、字符串

Ⅰ.建立

  • 1.使用引号(单引号或双引号或三引号)建立字符串
# 定义一个字符串
	a = '子明'
	a = "子明"
	a = '''子明'''
  • 2.变量赋值过程示意图
  • 在这里插入图片描述

Ⅱ.运算符

在这里插入图片描述
*【注】:格式化下面单独详解python

Ⅲ.字符串格式化

  • 1.基本用法:将一个值插入到一个有字符串格式符(%s)的字符串中
print ("我叫 %s !" % '子明' )
	print ("我叫 %s 今年 %d 岁!" % ('子明', 20))

*【注】详细的字符串格式化符号以下:
在这里插入图片描述git

  • 2.format() 方法格式化’
    // 调用format方法,并提供要设置格式的值,去替换用花括号括起来的替换字段,替换字段由三部分组成:
    • (1)字段名:索引或表示符,指出设置哪一个值的格式,并使用结果来替换该字段,也可指定特殊部分,如列表的元素。
      • 只需向format提供要设置的未命名参数,并在格式字符串中使用未命名字段,此时顺序将字段和参数匹配,也能够给参数指定名称。
        >>> " {foot}  { }  {bar}  { } ".format(1,2,bar=4,foot=3)    
             '3,2,4,1'
      • 还能够经过索引指定要在哪一个字段中使用相应的未命名参数
        >>> " {foot}  {1}  {bar}  {0} ".format(1,2,bar=4,foot=3) 
           '3,2,4,1'
    • (2)转换标志:感叹号后面的单个字符,包括r(repr),s(str) 和 a(ASCII)
      • Str 建立外观普通的字符串版本(对字符串不作任何处理),repr建立给定值的python表示,a即是ASCII表示。
      • *[注]:pi = π
      >>>print( “{pi ! a}  {pi ! s}  {pi ! r}”.format(pi=”π”))  
       	  '\u03c0'  π  'π'
    • (3)格式说明符:冒号后面的表达式,包括格式类型(如字符串,浮点型或十六进制),字段宽度和数的精度,如何显示符号和千位分隔符,以及和种对齐和填充方式。
      • 通常用格式说明(冒号后面)使用字符表示要转换的值类型
      >>> "the number is {num:f}".format(num=42)
       		'the number is 42.000000'
      *【注】字符串格式设置中的类型说明符
      在这里插入图片描述
      在这里插入图片描述
      • . 宽度,精度和千位分隔符
      >>> "pi  day is  {pi : 10.2f }".format(pi=pi) 
      	        '        3.14'
      	 >>> " { name:10 }". format (name="Bob")    // 很显然数字和字符串对齐方式不一样
      	       'Bob       '
      【分析】 :10表示宽度 .2表示精度 f表示格式说明 若是冒号( ; )后面是逗号( ,)表示添加千位符(每隔3位数一个逗号)
      • 符号,对齐和用0填充
        • 在宽度和精度前面加一个标志,这个标志能够是零,加号,减号和空格web

          • 用0填充 (pi = π)
          >>> ' { : 010.2f } '.format(pi) 
          	 '0000003.14'
          • 要指定左对齐,右对齐和居中,分别使用< > 和^,还能够用填充字符来扩充对齐说明符,好比美圆符号$
            在这里插入图片描述

          【分析】 而冒号前面的0或1,表示和这个值是正仍是负,也能够直接在冒号用+或-来表示。冒号后面也能是=号,将指定填充字符放在符号和数字以前。#号,将触发另一种转换方式,对于二,八,十六进制,将加一个前缀。对于十进制,必须包含小数点(对于类型g,保留小数点后面的零)api

          >>>  "{:b}".format(42)  
          	 '101010'
          >>>  "{:#b}".format(42) 
          	 '0b101010'

Ⅳ.经常使用操做

1.判断类型

  • isspace() 若是 string 中只包含空格,则返回 True
  • isalnum() 若是 string 至少有一个字符而且全部字符都是字母或数字则返回 True
  • isalpha() 若是 string 至少有一个字符而且全部字符都是字母则返回 True
  • isdecimal() 若是 string 只包含数字则返回 True,全角数字
  • string.isdigit() 若是 string 只包含数字则返回 True,全角数字、⑴、\u00b2
  • isnumeric() 若是 string 只包含数字则返回 True,全角数字,汉字数字
  • istitle()若是 string 是标题化的(每一个单词的首字母大写)则返回 True
  • islower() 若是 string 中包含至少一个区分大小写的字符,而且全部这些(区分大小写的)字符都是小写,则返回 True
    - isupper() 若是 string 中包含至少一个区分大小写的字符,而且全部这些(区分大小写的)字符都是大写,则返回 True

2.查找和替换

  • startswith(str) 检查字符串是不是以 str 开头,是则返回 True
  • endswith(str) 检查字符串是不是以 str 结束,是则返回 True
  • find(str, start=0, end=len(string))检测 str 是否包含在 string 中,若是 start 和 end 指定范围,则检查是否包含在指定范围内,若是是返回开始的索引值,不然返回 -1
  • rfind(str, start=0, end=len(string))相似于 find(),不过是从右边开始查找
  • index(str, start=0, end=len(string))跟 find() 方法相似,不过若是 str 不在 string 会报错
  • rindex(str, start=0, end=len(string))相似于 index(),不过是从右边开始
  • replace(oldstr, newstr, num=string.count(old))把 string 中的 oldstr 替换成 newstr,若是 num 指定,则替换不超过 num 次
  • count(str)计算子串str出现的次数

3.大小写转换

  • capitalize() 把字符串的第一个字符大写
  • title() 把字符串的每一个单词首字母大写
  • lower() 转换 string 中全部大写字符为小写
  • upper() 转换 string 中的小写字母为大写
  • swapcase()翻转 string 中的大小写

4.文本对齐

  • ljust(width) 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
  • rjust(width) 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
  • center(width)返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

5.去除空白字符

  • lstrip() 截掉 string 左边(开始)的空白字符
  • rstrip() 截掉 string 右边(末尾)的空白字符
  • strip() 截掉 string 左右两边的空白字符

6.拆分和链接

  • partition(str) 把字符串 string 分红一个 3 元素的元组 (str前面, str, str后面)
  • rpartition(str) 相似于 partition() 方法,不过是从右边开始查找
  • split(str="", num)以 str 为分隔符拆分 string,若是 num 有指定值,则仅分隔 num + 1 个子字符串,str 默认包含 ‘\r’, ‘\t’, ‘\n’ 和空格
  • splitlines()按照行(’\r’, ‘\n’, ‘\r\n’)分隔,返回一个包含各行做为元素的列表
  • join(seq) 以 string 做为分隔符,将 seq 中全部的元素(的字符串表示)合并为一个新的字符串

3、列表、元组

Ⅰ.定义及建立

  • 列表定义:方括号,元素以逗号隔开
  • 元组定义:小括号,元素以逗号隔开
  • 列表建立:name = list() 或 [] 或 [1,2] 或 [1,[1,2]]
  • 元组建立:name = tuple() 或()或 (1,2)或(1,,1,2))

Ⅱ.特色

  • 列表:可修改,可重复,可嵌套,支持多种数据
  • 元组:不可修改,可重复,可嵌套,支持多种数据

Ⅲ.基本操做

在这里插入图片描述

4、字典

Ⅰ.定义及建立

  • 定义:花括号,键值对用冒号隔开,每对之间逗号隔开
  • 建立:name = dict() 或 {} 或 dict(name = ‘lucy’,age=18)或 dict([(‘name’,‘Tom’),(‘age’,12)])

Ⅱ.特色

  • 无序,键惟一(去重),可嵌套,键是不可变类型数据

Ⅲ.基本操做

    • update() : 使用字典里的项更新另外一个字典
    • clear() : 删除全部字典项
    • pop() : 获取并删除指定键相关联的值
  • 改 list_name[键] = 值
    • get() :访问字典项,访问不存在的键,返回None,也能够是你指定的值,访问存在的键

5、集合

Ⅰ.定义及建立

  • 定义:花括号,元素以逗号隔开
  • 建立 :{ } 或 set() 空集合只能是set函数建立,{}是建立字典的

Ⅱ.特色

  • 无序,不重复,元素不可变

Ⅲ.基本操做

    • add():将元素添加到集合当中,若是元素存在,则不进行任何操做
    • update() : 更新集合
    • remove() : 将元素从集合中移除,若是元素不存在,则会发生错误
    • discard() : 移除集合中的元素,且若是元素不存在,不会发生错误
    • pop() : 随机删除一个元素
    • clear() : 清空集合

[^1] 各类数据类型的基本方法列举在这,另外还有些内置函数,若是要用到,本身到官方文档查询便可数据结构