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
  • 相关阅读:
    Android 基于Message的进程间通信 Messenger完全解析
    Android获取TextView显示的字符串宽度
    关于移动App的五个提问
    Android 结合实例学会AsyncTask的用法
    提高 Android 代码质量的4个工具
    高效开发Android App的10个建议
    移动5年 Android生态系统的演进
    最受欢迎的游戏引擎集结号:跨平台篇
    Java程序员转Android开发必读经验分享
    8 个最优秀的 Android Studio 插件
  • 原文地址:https://www.cnblogs.com/binHome/p/11770569.html
Copyright © 2011-2022 走看看