zoukankan      html  css  js  c++  java
  • 【python】数据类型概述

    python数据类型分类:

    1、int 整型

    .bit_length()  #数字转换成二进制长度

    2、str 字符串

     1)索引

           索引默认从左到右,下标从0开始,从右到左,下标从-1开始 

        2)切片

            语法: s[开始位置:结束位置:步长]

            特点:顾头不顾尾

            步长正负表示了起止的方向和内容打印的方向(默认正数是从左到右读和取)

        3)常用操作:

        #字符串是不可变的,任何操作对原字符串无影响

        #所以有返回值

            s.capitalize() 首字母大写 

            s.title() 被特殊字符隔开的首字母大写(中文和空格也属于特殊字符)

            s.lower() 

            s.upper()

            s.strip() 去空格 只对首尾有效 

                #s.strip("指定内容") 去除字符串前后指定内容

                #s.lstrip()  

                #s.rstrip()

            s.split("指定元素") 切割

                #切割之后是列表,列表里面装的是字符串

                #如果切割在字符串左右两端,一定会生成空字符串

            s.replace() 替换

                #s.replace(" ","") 区别s.strip()

                #注:空格和空字符串还是有区别的。

            len() 计算字符串长度,不需要点操作

            s.startswith('a') 判断是否以a开头

            s.endswith('b')

            s.find("木木"26)指定范围查找

      4格式化输出 

       %s:

                s="我叫%s,今年%d岁了,喜欢%s" % ('alex',20,'羽毛球')

            位置格式化:

                s="我叫{},今年{}岁了,喜欢{}".format('alex',20,'羽毛球')

            指定位置:

                s="我叫{0},今年{2}岁了,喜欢{1}".format('alex','羽毛球'20)

            指定关键字:

                s="我叫{name},今年{age}岁了,喜{hobby}".format(name='alex',age=20,hobby='羽毛球')

       5)迭代:

      str01 = 'hello python'

            for i in str01:

                print(i)

                print(type(i))  

    3、list 列表

     #列表可变,直接对原列表操作

        1)增加:

            #返回值都是None

            list1.append() 向列表中添加一个元素,至末尾

            list1.insert(1,'周周') 指定位置添加一个元素 #少用,耗性能

            list1.extend() 迭代添加

        2)删除:

            #有返回值

            list1.pop() 输出最后一个,返回值是删除的元素

            list1.pop(1) 根据索引删除 #少用,耗性能

            list1.remove('元素') 指定元素删除,无返回值

            del list1 删除整个列表 

                #del list1[:] 切片删除得到的是空列表

            list1.clear() 清除,得到空列表

        3)修改:

            通过索引修改:list1[0]='太白'

            切片修改:list1[0:2]='马花花' #先删除再迭代添加

        4)常用操作:

            list1.sort() 排序,默认升序 

            list1.sort(reverse=True) 倒序

            list1.reverse() 翻转

            len() 长度

        5)列表嵌套

        6)迭代

      list1 = [1,2,3,'zxl',[4,5]]

            for i in list1:

                print(i) #遍历各元素

                print(type(i)) #取决各元素的数据类型

    4、元组

        #只读列表,不可变

        1)元组中若只有一个元素,要加一个逗号,否则是int

        2)元组不可变,指的是子元素类型是不可变的数据类型,若子元素是可变的数据类型那么也是可以修改的

        3tuple() 表空元组

        4)迭代

      tuple1 = (1,2,3,[4,5])

            for c in tuple1:

                print(c)

    5、字典

       1{}括起来的键值对,无序的

           key不可变,可哈希;可作为key的数据类型:str、 int、 bool、 tuple 列表不可作为key

        2)增加:

            dic["果果"]='汪峰'  不存在走添加,存在走修改

            dic.setdefault("果果",'老外') 不存在走添加,存在不保存走查询

        3)删除:

            dic.pop('果果') 指定key删

            dic.popitem() 随机删一个

            del dic['果果'] 指定key删

        4)修改:

            dic1.update(dic2) 将dic2更新到dic1中,存在走修改,不存在走增加

            dic['1']=dic['1'] + 20 通过key修改

        5)查:

            dic.get('1','503') 根据key查,若不存在返回指定值

            dic.setdefault('昆凌','周周') 没有走新增,已存在走查询,返回对应的value

        6)补充:

            dic.keys() 获取所有key

            dic.values()获取所有value

            dic.items()获取所有键值对

            for k,v in dic.items():

                print(k,v)--------------获取到的是元组类型

            for i in dic1:

                print(i)-------获取key

                print(dic[i])-----获取value

    补充:

    1、range

     #同切片,顾头不顾尾

        for i in range(10):

            print(i) # 0,1,2,3,4,5,6,7,8,9

        for i in range(10,1,-1):

            prnt(i) #10 9 8 7 6 5 4 3 2 

        for i in range(len(list)):

            print(i) #获取列表的索引 (对字符串,元组,字典,列表都适用

    2、jion()

       s = 'abc'

            s1=s.join("非常可乐") #把s插入到join里的字符串

            print(s1) # 非abc常abc可abc乐

    3、循环里做删除,不可以直接删

    比如把主播薪资低于平均薪资的过滤掉

    4、深浅拷贝

    列表进行赋值操作,实际上引用内存地址进行赋值

            list2= list1

            list2.append("大同")

            print(list1) #list1内容也被修改

    浅拷贝: .copy() #适用于各元素不可变场景,只拷贝第一层

            list2=list1.copy()  #list1 和list2指向的不是同一对象

            list2=list1[:]   #切片赋值等价于浅拷贝

    深拷贝:  #适用所有类型,完全拷贝

            list1 = ['超人','七龙珠'['大力','二力']]

            import copy 

            list2 = copy.deepcopy(list1)

            list1.append("大洋")

            print(list1,list2)

  • 相关阅读:
    vs code插件
    各大厂RTSP取流的URI
    关于VLC无法播放rtsp的问题分析
    VLC查看日志的方法
    wireshark的过滤命令
    vs编译完提示不支持尝试的执行操作
    vs2015的密钥
    VS制作dll、def文件的使用、dll加入工程使用
    python之NLP数据清洗
    python 生成词云
  • 原文地址:https://www.cnblogs.com/xlzhangq/p/13210768.html
Copyright © 2011-2022 走看看