zoukankan      html  css  js  c++  java
  • 5-21python数据类型

    一、字符串,是不可变数据类型,所有字符串的方法都不会修改字符串的值,使用字符串的方法后都是生成了一个新的字符串。就因为字符串是不可变变量!

    字符串的方法

    1、 strip(),默认去空格,但是当()中有某个字符串的话,意思就是去掉前面字符串中的某个字符串

    例如:字符串名字xx.strip()

    print('lalahi zhangyizhoulala'.strip('lala'))
    但是要注意这个方法只是去掉字符串两头的指定东西,如果字符串中间有指定的lala时则不会生效

    2、None,代表空,什么都没有,但不是空字符串

    3、in,代表xx在A里

    例如:

    name = 'chuandan beizhao sijiantao'

    print('sijiantao' in name)

    返回结果是布尔值t或f

    4、is,判断是否是同一块内存地址

    例如:

    a1 = ['a','b','c']
    a2 = ['a','b','c']
    print(id(a1))
    print(id(a2))
    print(a1 is a2)

    返回结果是布尔值t或f

    5、 字符串的下标

    通过字符串的下标取其第几位的值

    如:

    print(name[3])

    6、是否以x结尾,例如

    name = 'hello zhangyizhou'
    print(name.endswith('h'))
    返回false

    7,find()查找字符串的索引,例如

    name = 'hi zhangyizhou'
    print(name.find('y',2,10))
    返回位置的数字,如果返回-1代表没找到

    2和10代表开始查找的位置和结束的位置,可以都不写,也可以只写开始的位置
    8、isdigit()字符串是否是数字,例如
    name = 'hi zhangyizhou'
    print(name.isdigit())
    返回布尔值

    9、将字符串中变成大/小写,变成大写upper(),变成小写lower(),例如
    name = 'hi zhangyiZHou'
    print(name.lower()) 变成小写
    print(name.upper()) 变成大写

    10、join()拼接字符串,join后面必须是可迭代的对象,比如字符串或者列表之类的,例如
    name = ['hi','zhangyiZHou']
    print('用这个连接'.join(name))
     join前面想写啥写啥,意思是用‘用这个连接’这几个字将前面的东西和name里的东西拼成一个字符串,也可以写星号之类的。如果以上例子当中name的类型是字符串的话,运行的结果是连接符+hi,连接符+zhangyizhou

    11、替换字符串replace()
    例如:print('zhangyizhou is mm,zhangyizhou is nvde,zhangyizhou loveu'.replace('zhangyizhou','tihuandiao')),3个zhangyizhou都被替换成tihuandiao了
    在要替换的字符串后面也可以加数字,代表着要替换几次
    例如:
    print('zhangyizhou is mm,zhangyizhou is nvde,zhangyizhou loveu'.replace('zhangyizhou','tihuandiao',1)),只替换第一个zhangyizhou

    12、分割字符串,分割后返回一个列表,例如
    char = 'zyz&yiso&zhrrt&namr2'
    print(char.split('&'))
    将char以&这个符号分割成一个新的列表


     字符串必须会的方法

    大小写字母+数字,随机生成验证码

    Find,查找字符串

    Format() 格式化字符串

    Isalnum() 是否包含数字和字母

    Isdigit() 是否是数字

    Lower() 变成小写字母

    Upper()变成大写字母

    Join() 拼接字符串

    Strip() 去空格,istrip()   rstrip()去左边空格和去右边空格

    Replace()替换字符串中的指定字符串

    Split()分隔字符串



    二、列表

    1、列表中增加元素

    方法append,insert

    append是在列表的末尾增加

    insert是在指定位置增加

    例如:

    name = ['name1','name2','name3']

    name.append('zhangyihzou')  

    print(name)

    name.insert(1,'yiso')

    print(name)

    2、列表的删除

    方法pop(),不指定元素的时候删除列表最后一个元素,且该方法能够返回被删除的值

    例如:

    name = ['name1','name2','name3']
    name.insert(1,'yiso')
    name.pop()
    print(name)
    返回通过pop删除的值
    例如:
    name = ['name1','name2','name3']
    name.insert(1,'yiso')
    name.pop()
    print(name)
    print('pop删的是:',name.pop())

    方法pop(n),指定元素的x下标删除列表中指定位置的元素

    例如:

    name = ['name1','name2','name3']
    name.insert(1,'yiso')
    name.pop(1)
    print(name)

    方法clear(),清空列表

    例如:

    name = ['name1','name2','name3']
    print('before的值:',name)
    name.clear()
    print('after的值:',name)

    方法del[n],指定元素的x下标删除列表中指定位置的元素,且指定的下标必须存在,也可以用del方法删除整个列表,如del name

    例如:

    name = ['name1','name2','name3']
    del name[1]
    print(name)

    方法remove(),删除列表中某个值,括号中必须写要删除元素的值,而不是下标,不会返回删除的值

    例如:

    name = ['name1','name2','name3']
    name.remove ('name1')
    print(name)

    3、列表中修改元素
    name[n] = xxx,为修改列表中某元素的值。也可以直接给列表重新负值,即 name = ['值1',‘值2’,‘...’]
    例如:
    name = ['name1','name2','name3']
    name[2] = 'lalala'
    print(name)
    注意:如果找不到列表中的下标,对其进行修改值,会报错
    例如:
    name = ['name1','name2','name3']
    name[9] = 'lalala'
    print(name)
    4、列表的查询
    A in B,in方法
    例如:

    list = [1,2,3,'zhangyizhou']
    print('zhangyizhou' in list)

    列表名[-1],-1是取列表中最后一个元素。同理,-2代表倒数第二个元素,-3代表第三个元素
    例如:
    list [1,2,3,'zhangyizhou']
    print(list[-1])
    index(元素值)方法,意思是查询某个元素的下标,如果这个值在列表中不存在,报错
    例如:

    list = [1,2,3,'zhangyizhou']
    print(list.index(1))

    index方法中也可以从指定位置开始找,index(元素值,m,n)   m代表查找的开始位置,n代表查找的结束位置,结束的位置可以不写,意思就是查找到列表最后
    例如:

    list = [1,2,3,'zhangyizhou']
    print(list.index('zhangyizhou',3,3))

    5、列表的运算
    +
    list a +list b,意思是列表a元素和b元素相加后组成一个新的列表,新列表中的元素顺序按照a和b的顺序显示。但a和b中的值没有变化
    例如:

    list1 = ['zhangyizhou','yiso',1,33,600]
    list2 = [25,68,'mengmengzhou','hahaha12']
    print(list1 + list2)

    a.extend(b),意思是把b的值扩展到a中,b的值不变,但是a的值是a+b后的值,顺序是a+b。
    例如:

    list1 = ['zhangyizhou','yiso',1,33,600]
    list2 = [25,68,'mengmengzhou','hahaha12']
    list1.extend(list2)
    print(list1)

    a.append(b),意思是把b这个整体加在a的末尾,注意这时结果会是一个二维数组,因为b在结果中是一个整体
    例如:
    a = ['a',3,'zhangyizhou',68]
    b = [1,2,5,7]
    print(a)
    print(b)
    6、列表的排序,默认是升序排序
    sort()方法,将列表中的元素升序排序, 需要注意的是,用到排序方法,列表中的值必须是同一种类型的数据
    例如:

    list = [1,34,5,94,45,555,976]
    list.sort()
    print(list)

    sort(reverse = True)方法,将列表中的元素降序排序
    例如:

    list = [1,34,5,94,45,555,976]
    list.sort(reverse = True)
    print(list)

     
    三、切片,对字符串和字典均可操作

    切片:从列表和字符串里取几个元素

    List[m:n],意思是取第m位到第n位的元素

    例如:
    list = ['zhangyizhou','yiso','youxin']
    print(list[1:3])

    注意,如果从第一位开始取的话冒号前可以不写,渠道最后的话冒号后可以不写,如果都不写只写冒号的话就是从头取到尾

    字符串的写法同上,注意取值都是顾头不顾尾

    四、步长

    步长:从列表和字符串里隔几个取一个元素

    例如:

    num = list(range(1,21))
    print(num[0:11:3])
    意思是从第0个到第11个隔3个元素取一次值
    以上输出的是:[1, 4, 7, 10]
    如果步长为负数的话,意思是从最后一个往前取值,相当于倒序排序
    例如:
    num = list(range(1,21))
    print(num[::-1])
    以上输出的是:[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
    如果步长是-2的话意思是从末尾开始取,隔两个取一次

    五、元组
    元祖:不可变的列表list。更多时候用在操作数据库读数据库时使用。
    元组用小括号定义,如tuple()
    元组只有两个方法,count()和index()。统计元组中重复元素出现的次数,和索引读下标
    例如:
    tuple = (0,1,2,3,2,5,6,7,8,2,2)
    print(tuple)
    print(tuple.count(2))
    统计2在tuple中出现的次数
    例如:
    tuple = (0,1,2,3,2,4,6,7,8,2,2)
    print(tuple.index(4))
    以上例子是返回元组中数值是4的元素的下标


    六、字典
    字典:用大括号{}表示。Key value的形式在大括号里。但是key在字典里不能重复的,是唯一的。
    1、字典取值的方法,通过key取值
    例如:
    zidian = {
        'name':'zhangyizhou',
        'sex':'man',
        'age':'17',
        'grade':'one'
    }
    print(zidian['grade'])
     
    另一种取值的方法get()
    例如:
    zidian = {
        'name':'zhangyizhou',
        'sex':'man',
        'age':'17',
        'grade':'one'
    }
    print(zidian.get('sex'))
    以上两个方法的区别是get获取不到Key的时候不会报错返回是none
    print(zidian.get('haha','没找到你要的'))
    以上例子中没找到你要的这个参数,代表是当get不到Key时返回的东西,如果不写该参数的话返回none

    2、
    字典增加的方法
    用中括号
    例如
    zidian = {
        'name':'zhangyizhou',
        'sex':'man',
        'age':'17',
        'grade':'one'
    }

    zidian['addr'] = '朝阳区青年路'
     
    另一种增加的方法setdefault(‘key’,’值’)
    例如:
    zidian = {
        'name':'zhangyizhou',
        'sex':'man',
        'age':'17',
        'grade':'one'
    }
    zidian.setdefault('addr','甜水园麦当劳')
    print(zidian
          )
     3、字典修改的方法:
    用中括号
    同新增的中括号:zidian['like'] = 'music'

    4、
    字典删除的方法
    del(key)
    例如:del zidian[‘addr’]
    pop(),字典是无序的,所以Pop方法必须传一个指定的key,而且指定删除的这个key必须存在,否则报错 
    例如:pop(‘sex’)
    Clear(),直接清空字典
    例如:
    zidian.clear()
    Popitem(),意思是随机删除一个元素
    例如:zidian.popiten()
    以上返回的是:{}

    5、
    字典的内置方法:
    all.keys()   返回字典的所有key    例如:print(all.keys(zidian))
    all.values()返回字典所有的value   例如:print(all.values(zidian))
    all.items()  返回字典所有的key 和value,循环字典的时候用        

    6、字典的合并,将两个字典合并在一起
    例如:
    zidian1 = {
    'name':'zhangyizhou',
    'sex':'man',
    'age':'17',
    'grade':'one'
    }
    zidian2 = {
    'xing':'yiso',
    'nianji':'san',
    'pohone':'13311221345',
    }
    zidian1.update(zidian2)
    print(zidian1)

    注意,如果要合并的两个字典中有相同的key,那么该方法执行后会更新key的value
    7、判断是否在字典中存在的方法,in
    例如:name in zidian1
    返回的是布尔值



     
     
     
  • 相关阅读:
    May LeetCoding Challenge22 之 比较器comparator、map按Value排成逆序、桶排序
    May LeetCoding Challenge21 之 动态规划的min使用
    May LeetCoding Challenge20 之 二叉树中序遍历
    May LeetCoding Challenge19 之 单调栈2.0
    May LeetCoding Challenge18 之 滑动窗口2.0
    May LeetCoding Challenge17 之 滑动窗口
    May LeetCoding Challenge16 之 链表重组
    APT常用命令
    DDCTF-misc-流量分析
    Wireshark学习笔记
  • 原文地址:https://www.cnblogs.com/yiso/p/6892076.html
Copyright © 2011-2022 走看看