zoukankan      html  css  js  c++  java
  • Python基础数据类型以及对应方法

    数据类型

    不可变数据(四个):Number(数字)、String(字符串)、Tuple(元组)、Sets(集合);可哈希

    可变数据(两个):List(列表)、Dictionary(字典)。不可哈希

     


     

    字符串,列表,元祖的索引与切片

    索引:例如
      str='abcdefg'
      str[0]='a'
      str[-1]='g'


    切片:例如
      str='abcdefg'
      str[0:4]='abcd' #切片:顾首不顾尾
      str[:-1]='abcdef'
      str[:]='abcdefg'
      str[::2]='aceg'
      str[::-1]='gfedcba' #str[首:尾:步长]


    公共方法


      len();#计算str包含多少字符,list多少元素,dict多少键值对,Tuple多少元素。

      .count();#查找字符,元素的出现次数。

      type();#判断数据类型,()中输入需要判断的数据。


    str常用操作方法

      str.capitalize();#字符串首字母大写。

      str.upper() ; #字母全部大写。

      str.lower();#字母全部小写。

      str.isupper();#是否字母全大写。

      str.islower();#是否字母全小写。

      str.swapcase();#字母大小写反转。

      str.title();#字母标题化 每个隔开(特殊字符或数字)的单词首字母大写。

      str.center();#字符居中 需要填入参数 width(宽度) 默认fillchar(填充物)为None,可以自己设置填充物。

      str.expandtabs();#与Tab( )使用 补充位数。

      str.startswith();#检测字符串是否以'什么'为开头,返还True,False。

      str.endwith();#检测字符串是否以'什么'为结尾,返还Ture,false。

      str.find(); #查找字符串中的元素,返回此元素的下标(索引),找不到返还-1,可切片规定寻找范围。

      str.index(); #str.find()类似,如果找不到会报错*

      str.strip();#去除前后的空格 如果要去除前面的空格使用str.lstrip(),去除后面的空格使用str.fstrip()。str.strip('需要删除的元素')默认为空格可以更改。

      str.split();#str.split('拆分的字符',num)进行拆分把一个字符串转化为一个列表,被拆分的内容不存在。如果设置了num 则切分成num+1次(str>>>list)*

      str.rsplit(); # 从右往左分 默认split是从左往右分

      str.replace();#替换 str.replace('替换内容','新的内容',次数(默认为全部替换))。

      str.isalnum();#字符串是否由数字或字母组成。

      str.isalpha();#字符串只由字母组成。

      str.isdigit();#字符串只由数字组成。

      str.isspace();#字符串只由空格组成。


    int常用操作方法

      int.bit_length();#把数字转化为二进制最小的位数。

     


    list列表—[]的增删改查

    增:

      list.append();#在原有列表的基础上在末尾增加元素;直接打印无返还值。
      list.insert();#在列表中指定位置插入元素,需要输入两个参数插入的位置和需要插入的内容
      list.extend();#迭代增加,()中必须是可迭代对象,增加内容为最小元素。

    删:

      list.pop();#按索引删除,如果不加索引默认删除最后一个;有返回值 返回删除的值。
      list.remove();#按元素去删,无返回值。
      list.clear();#清空列表。
      del();#删除列表,也可以切片删除部分

    改:

      list['需要更改内容的索引']='要更改的内容'#直接通过索引去改;
      list.['需要更换切片的内容']='需要更改的内容'(增加的list中以最小元素拆分放入),#先将你需要替换的内容拿出来在放入你需要更改的内容,你需要更改的内容以最小元素分开放入列表中。

    查:

      list.[索引或切片];#利用索引和切片查找元素。
      for i in list:
        print(i)#查列表中所有的元素打印出来。
      list.index('元素');#通过元素找索引。

    排序:

      list.sort(cmp=None, key=None, reverse=False)
        cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
        key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
        reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)
      list.reverse();#列表的反转。

    list补充:

    去除多余嵌套的列表(迭代)

    def f(x):
      ret=[]
      for b in x:
        if isinstance(b,list):
      for a in f(b):
        ret.append(a)
      else:
        ret.append(b)
      return ret


      

    元祖type-()

      元祖 只读列表,可循环查询,可切片,如果里面嵌套可修改内容,可以更改嵌套里可修改的内容。

      (连接对象str).join(可迭代对象);# 将可迭代对象每一个都加上连接对象成为一个新的字符串,可以将可迭代对象转化为字符串。(list;tuple>>>str)*************

       range();#生成数列(起始值(如果是0可以省略),终止值(不包括本身),步长(默认为0))。

      元祖  如果元祖里面只有一个元素且不加,那此元素是什么类型,就是什么类型。


    字典dict-{}的增删改查

    dict(映射类型,键值对)
    dict key(键必须是不可变数据类型) 可哈希
    dict 优点:
      1.二分查找去查询。
      2.存储大量的关系型数据。
      3.无序的(python3.5前)。

    增:

      dict['键'] =值 # 如果dict中没有此键,就添加,如果有键,就覆盖。
      dict.setdefault() # ('键','值,(值如果不写默认为None)')如果dict中有此键则不执行任何操作不做任何改变。
      dict.formkeys(seq,'value(不填默认为None))');# Python 字典 fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值

    删:

      dict.pop('键') # 直接按照键去删除,有返回值,返回的是键值对的值,如果dict中没有此键,则会报错(解决方法:dict.pop('键','提示字符')如果加了提示字符在dict中没有此件时返回你输入的提示字符)。
      dict.popitem() # 随机删除(python3.5之前没有排序随机删除python3.6后有排序删除最后一个键值对),有返回值,返回的是键值对。
      dict.clear() # 清空dict。
      dict.del() # 删除整个dict,如果('键')删除键值对,如果dict中没有此键则会报错,无返回值。
      del dict["key"] # 删除此键值对

    改:

      dict['键'] =值 # 输入以有的键赋给新值就是更改键值对。
      dict2.update(dict) # 把dict所有的键值对更新到dict2中,原dict无变化。

    查:

      dict['键'];# 查找dict的对应的值
      dict.keys();# dict中的键,放在一个列表中。
      dict.values();# dict中的值,放在一个列表中。
      dict.items();# dict中的键值,在一个列表中,但键值放在一个元祖中隔开。
      dict.get();# dict.get('查找的内容','提示字符') 如果没有此键返回提示字符。
      sorted();# sorted('dict.keys;dict.values;dict.items')返回一个新的list,不在原函数更改;list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
      dict.setdefault();# Python 字典 setdefault() 函数和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值。(也有增的功能)

    补充:

      在循环列表和字典中 不要直接删除原列表和字典中的内容,达不到相应的要求容易报错。


    集合set-{}的增删改差

      set集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复。set1=set({1,2,3});set1={1,2,3}。

      set.add('需要添加的内容');# 直接添加。(集合是无序的 随机添加到位置)
      set.update(需要添加的内容);# 迭代增加 把需要添加的内容化为最小元素分开放入集合中。(集合是无序的 随机添加到位置)

      set.pop();# 随机删除 ,有返回值。
      set.remove();# 按照元素删除,如果没有会报错。
      set.clear();# 清空集合 表现方式为set()。
      set.del();# 删除整个集合。

      # 因为set中元素不可变所以不能更改

      for i in set:print(i);

    计算

      交集:'&' 或者使用 set1.intersection(set2);
      并集:'|'或者使用 set1.union(set2);
      反交集:'^'或者使用 set1.symmetruc.difference(set2);
      差集:'-'或者使用 set1.difference(set2);#set1独有的set2没有的拿出来;
      子集:'<'或者使用ste1.issubset(set2);#说明ste1是set2的子集;返回布尔值;
      超集:'>'或者使用ste1.issuperset(set2);#说明ste1是ste2的超级;返回布尔值;

    类型转换

      list>>>set
      set = ste(list)
      set>>>list
      list=list(set)

    转化不可变数据类型

      frozenset();# frozenset() 返回一个冻结的集合,冻结后集合只能查看不能再添加或删除任何元素.比如列表、字典、元组等等


    分类 数字,字符串 小数据池(地址)


      # 数字的范围 -5 -- 256 如果数字范围在此,创建多个变量都等于他,用的地址是一样的。
      # 字符串:
      1.不能含有特殊字符;(如果字符串中包含特殊字符,不管多长多段都不会共用一个)。
      2. S*20 还是同一个地址,S*21以后都是两个地址。(S为一个字节)
      # 除了数字与字符串 没有 小数据池的概念。


    Songzhibin
  • 相关阅读:
    为什么 PCB 生产时推荐出 Gerber 给工厂?
    Fedora Redhat Centos 有什么区别和关系?
    【KiCad】 如何给元件给元件的管脚加上划线?
    MCU ADC 进入 PD 模式后出现错误的值?
    FastAdmin 生产环境升级注意
    EMC EMI 自行评估记录
    如何让你的 KiCad 在缩放时不眩晕?
    KiCad 5.1.0 正式版终于发布
    一次单片机 SFR 页引发的“事故”
    java基础之集合
  • 原文地址:https://www.cnblogs.com/binHome/p/11770569.html
Copyright © 2011-2022 走看看