zoukankan      html  css  js  c++  java
  • 基本数据类型

    基本数据类型

    注意:数字,字符串,布尔值可以相互转换

    如果需要把数字转换成 -字符串:str()  ; -布尔值:bool(),只有0是False,其他都是True

    字符串转换成-数字:int() ; -布尔值:bool(),空的是False,其他都是True

    布尔值转换成-数字:int(); -字符串:str()

    1, 数字 (int)

    数字对应的英文是int(整型)

    在python3 所有的整型都是int类型

    查看具体功能可以按住ctrl(苹果:command) ,然后单击鼠标左键.

    1) int 功能:

    -将字符串转化为数字  具体表达为 int(x) 

     注意:原来的字符串内包含数字才可以转换

    a = "123"
    b = int(a)
    print(b) ====>结果为123,
    print(type(a),a)=====>输出结果为 <class "str">123 ,此处是字符串类型
    print(type(b),b)=====>输出结果为 <class "int">123 ,此处是数字类型,

    - 将二,八,十六进制 的数字转化成十进制并且输出。

    具体代码: int(x,base=x),例如:

    number = "11"

    v = int (num , base=8) ======> 是指将八进制的11 转换成十进制并且输出

    print(v)

    输出结果是 9

    int () 不加 base = ,默认是十进制

    2)bit_lenght 功能

     bit_length 功能表示当前的数字的二进制,至少用n位来表示.

    具体代码为: x.bit_length() ,例如:

    age = 12
    n = age.bit_length()
    print(n)

    2,字符串(str) 

    str 与 name = "alisa" 是类与列表的关系

    字符串的英文是 str

    查询有哪些功能 str.

    查看具体功能可以按住ctrl(苹果:command) ,然后单击鼠标左键.

    功能:

    1)首字母大写   capitalize()  

    具体表达为x.capitalize()  如下:

    test = "alisa"
    v = test.capitalize()
    print(v)
    输出结果为:Alisa

    2) 全部小写

    casefold()     **casefold 更牛逼,对于未知的相对应变小写也可以输出

    具体代码为:x.casefold()

    例如:

    test = "Alisa"
    v = test.casefold()
    print(v)
    输出结果为:alisa

    *lower()

    具体代码为:x.lower() 

    例如:

    test = "Alisa"
    v = test.lower()
    print(v)

    *3)全部大写upper()

    代码为:x.upper()

    test = "abc"
    v1 = test.upper()
    print(v1)===>结果为:ABC

    4)设置宽度,

    -并将内容并居中

    center()

    具体代码:X.center

    查看功能具体如下图:

     

    例如:

    test = "lisa"
    v = test.center(10,"*")
    print(v)

    输出结果为:    ***lisa*** 

    其中10代表宽度(必须写上),*代表空白未知填充,但是只能写一个字符,此处可有可无

    -设置宽度,将内容居左 ljust()

    代码:x.ljust()

    test = "你好吗陈?"
    v1 = test.rjust(12,"*")
    print(v1)====结果为:你好吗陈?*******

    -设置宽度,将内容具右rjust()

    代码:x.rjust()

    test = "你好吗陈?"
    v1 = test.ljust(12,"*")
    print(v1)====结果为:*******你好吗陈?

    5) 去字符串中寻找,寻找子序列(子字符串)出现的次数。

    count(self, sub, start=None, end=None): 注意:其中end代表的是 <end, start 代表>=start,位置从0位开始数

     具体代码如下:x.count()

    其中sub必须写上内容,start 和 end 可写可不写。 start 代表起始位置,end 代表结束位置。
    例如:
    test = "lisalisa"======>"lisalisa"对应的位置为:
    01234567
    v = test.count("sa",5,8) =======>指从第5位开始到第8位包含sa 几次===>第5位是i,第7位是a,到第7为完结===>所以包含sa一次,所以输出结果为1
    print(v)====>输出结果为:1

    6) encode(self, *args, **kwargs)

     python3默认编码为unicode,由str类型进行表示。二进制数据使用byte类型表示。

    字符串通过编码转换成字节码,字节码通过解码成为字符串

    encode:str --> bytes

    decode:bytes --> str

    7)decode

    *8) 以什么结尾。

    endswith(self, suffix, start=None, end=None),注意:其中end代表的是 <end, start 代表>=start,位置从0位开始数

    代码:x.endswith()

    其中start 指从哪里开始,end指到哪里结束 (可写可不写,不写代表默认)

    例如:

    test = "lisalisa"
    v = test.endswith("sa",1,4)
    print(v) =========>结果是:True
    ****************************
    test = "lisalisa"
    v = test.endswith("sa",1,5)
    print(v)==========>结果是:False

    *9)以什么开始 

    startswith(self, prefix, start=None, end=None) 同上endswith 注意:其中end代表的是 <end, start 代表>=start,位置从0位开始数

    代码: x.startswith()

    test = "lisalisa"
    v = test.startswith("i",1,2)==>指从第1位到第2位的子字符串(子序列)是以"i"开始的。
    print(v)
    输出结果为:True

    10) 分割 字符串 expandtabs() ,遇到tab会自动空格补全            补充: ====>代表制表符

    代码为:x.expandtabs()

    expandtabs()代表几个字符串进行分割。例如:expandtabs(6) 代表6个字符分割成一个子字符串

    例如:

    test = "我的	9900	11"
    v = test.expandtabs(6)====>每6个分割一次
    print(v,len(v))========>len()是计算字符串的长度
    输出结果为:我的    9900 11 14 ====>分析: 我的==2个,遇到 自动补全,所以补充4个空格。最终一共有14个字符

    *****************************************************

    test = "username	password	e-mail
    alisa	123	asd@qq.com
    alisa	123	asd@qq.com
    alisa	123	asd@qq.com"====>
    表示换行
    v = test.expandtabs(15)
    print(v)
    输出结果为:username            password            e-mail
    alisa               123                 asd@qq.com
          alisa               123                 asd@qq.com
          alisa               123                 asd@qq.com

         

    *11) find 从开始往后找,找到第一个后,获取其位置,如果没有,显示-1

    find(self, sub, start=None, end=None) 注意:其中end代表的是 <end, start 代表>=start,位置从0位开始数

    代码:x.find(),如果找不到,会显示负数。

    例如:
    test = "lisalisa"
    v = test.find("sa",2,4)===>即在第2位到第4位中间找子序列"sa"==>第2位是s,第4位是l,找到第一个获取的位置是2
    print(v) ====>输出结果为: 2

    *12)格式化。将一个字符串中的占位符替换成指定的值

    format(self, *args, **kwargs) 

    代码为:x.format()

    例如:

    方式一:

    test = "my name is {x}, age {n}"====>注意此处的x 和n必须带{}
    v = test.format(x = "alisa", n = 18)
    print(v)===>输出结果为:my name is alisa, age 18

    方式二:

    test = "my name is {0}, age {1}"====->注意必须从0开始
    v = test.format("alisa", 18 ) ====> 注意按照顺序开始替换,此处alisa 替换0,18替换1
    print(v) ==>输出结果为 my name is alisa, age 18

    13)格式化。将一个字符串中的占位符替换成指定的值

    format_map(self, mapping)

    代码为:x.format_map() ,注意map后格式为({"a" : "alisa", "b" : 18})

    例如:

    test = "my name is {a}, age {b}"
    v = test.format_map({"a" : "alisa", "b" : 18})===>注意格式

    print(v)=====输出结果:my name is alisa, age 18

    14)index 与find 功能一样,只是如果找不到会显示错误,一般建议使用find

    15) 判断字符串中是否只包含字母和字符串/全是字母/全是字符串。

    isalnum(self, *args, **kwargs) 

    代码为 x.isalnum()

    例如:

    test = "123abc"
    v = test.isalnum()
    print(v)===>输出结果为:True
    ***************************
    test = "123abc_*"
    v = test.isalnum()
    print(v)====>输出结果为:False


    16) 判断字符串中是否只包含字母(汉字)

    isalpha(self, *args, **kwargs): 

    代码为:x.isalpha

    例如:

    test = "abc"
    v = test.isalpha()
    print(v) ===>输出结果为:True
    ***********************
    test = "abc/"
    v = test.isalpha()
    print(v) ===>输出结果为:False

    17)判断字符串是否只包含数字 isdecimal(),isdigit(),isnumeric()其中isnumeric()功能更强大

    例如:

    test = "123"
    v1 = test.isdecimal()===>只能判断十进制小数
    v2 = test.isdigit()===>不支持中文
    v3 = test.isnumeric()===>全都可以判断
    print(v1,v2,v3)
    输出结果为:True True True


    18)isidentifier()只要字符串符合:字母,数字,下划线(数字不能开头)就都是标识符 ,结果都是True。

     例如:

    test = "_123"
    v = test.isidentifier()
    print(v)
    输出结果为:True

    19)islower() 判断字符串是否全部是小写

    test = "Abc"
    v = test.islower()
    print(v)
    输出结果为:False

    20)判断是否存在不可显示的字符 isprintable()

    ====>代表制表符即:tab键

    ====>代表换行

    test = "Abc	bcd"
    v = test.isprintable()
    print(v)===>结果为:False
    *********************************
    test = "Abc"
    v = test.isprintable()
    print(v)===>结果为True

    21)判断是否全部为空格 isspace()

    test = " "
    v = test.isspace()
    print(v)====>结果为:True

    22) 判断是否为标题istitle() 代码是:x.istitle()     注意:标题中所有的单词首字母都大写

    变成标题的代码是:x.title()

    test = "who are you ?"
    v1 = test.istitle()===>判断v1是否为标题
    print(v1)====>结果是False
    v2 = test.title()===>此处是将v1变成标题
    print(v2)====>结果是:Who Are You ?
    v3 = v2.istitle()===>判断v3是否为标题
    print(v3)====>结果是True

    *23)将字符中的每一个元素按照指定的分割符进行组合 join():即将每个元素用分隔符连接起来

    代码:分隔符.join()

    方式一:

    test = "你好吗陈?"
    v1 = "*".join(test)
    print(v1)=======>结果为:你*好*吗*陈*?

    方式二:

    test = "你好吗陈?"
    t = "*"
    v1 = t.join(test)
    print(v1)=====>结果为:你*好*吗*陈*?


    如果join()括号内是列表的话,用分隔符依次连接列表中每一个元素:如下:
    li = ["achnd", "hnd","sjnd"]
    s = "-".join(li)
    print(s)==>输出结果为:achnd-hnd-sjnd

    ----------------------------

    l = ['1','2']
    s= ' '.join(l) # 是换行符
    print(s)

    结果如下:

    1
    2

    24)判断是否全部是大写 isupper()

    代码为:x.isupper()

    test = "abc"
    v1 = test.isupper()
    print(v1)====>结果是:False

    *25)去除左右空白,去除 和 即:去除换行和制表符,以及去除指定字符。 注意:去除指定字符时会遵循有序最多匹配原则

    -去除最左边和最右边空白 strip() 代码为:x.strip()

    test = " 你 好 吗 "
    v1 = test.strip()
    print(v1)结果是:
    你 好 吗
    ***********************
    去除指定字符
    test = "abcdfeg"
    v1 = test.strip("acdeg")====>分析:strip是去除最左边以及最右边. 最右边有eg,所以去除,剩下abcdf,指定字符中没有f,所以右边停止去除。最左边有a所以也去除,剩下bcdf,由于指定字符中没有b,所以左边也停止去除,最后剩余bcdf.
    print(v1)结果是:bcdf

    -去除最左边空白lstrip()

    test = " 你 好 吗 "
    v1 = test.lstrip()
    print(v1) 结果是:
    你 好 吗 

    **********************************

    去除指定字符

    test = "abadafeg"
    v1 = test.lstrip("abaf")====>分析:lstrip去除最左边,从左到右执行。从左边看最左边是aba,指定字符中有,所以去除aba,余dafeg;再从左看,指定字符中没有d,不去除;再看a,指定字符中有,所以去除a,余dafeg;由于字符串中也没d所以后边不执行,余dafeg.
    print(v1)===>输出结果为dafeg

    -去除最右边空白rstrip()

    test = " 你 好 吗 "
    v1 = test.rstrip()
    print(v1)结果是:
     你 好 吗

    ********************

    去除指定字符

    test = "abadafeg"
    v1 = test.rstrip("egefa")==>从右往左执行,eg子字符串中有,去除eg;f,子字符串中有,去除f;a子字符串中有,去除a;d子字符串中无,停止执行,最后余abad.
    print(v1)
    结果为:abad

    26) 对应关系并进行替换 maketrans(),translate()

    maketrans("x","x")  其中("x","x")  是写对应关系。

    例如:

    test = "abadafegxkhuddaaebvmdnkdjiq"
    x = test.maketrans("abcd","1234")===>对应关系
    v =test.translate(x) ===>表示将test按照对应关系x进行转换
    print(v)
    结果为:12141fegxkhu4411e2vm4nk4jiq
     

    27)分割

    -进行分割并且只能分割成三份 partition(),从左到右进行分割,碰到第一个指定的分割元素就分割成三份,这三份中包含指定分割元素

    代码:x.partition()

    test = "absdfscds"
    v = test.partition("s")
    print(v)
    结果为:('ab', 's', 'dfscds')

    -rpsrtition() 从右边进行分割,碰到第一个指定的分割元素就分割成三份,这三份包含指定分割元素。

    test = "absdfscdsd"
    v = test.rpartition("s")
    print(v)
    结果是:('absdfscd', 's', 'd')

    *-split(self, *args,**kwargs) ,可以分割成多份,多份里不出现分割元素。

    *args处填写指定分割元素;**kwargs处填写分割几次,如果此处不写默认全部分割

    test = "absdfscdsd"
    v = test.split("s")
    print(v)====>结果是['ab', 'df', 'cd', 'd']
    ******************************************
    test = "absdfscdsd"
    v = test.split("s",2)
    print(v)====>结果是['ab', 'df', 'cdsd']

    -rsplit() 从右往左分割成多份,不包含分割元素

    test = "absdfscdsd"
    v = test.rsplit("s",2)
    print(v)===>结果是['absdf', 'cd', 'd']

    -splitlines() 只能根据换行来分割,其中输入True / False 来保留/去除换行符号。如果不写,默认不保留换行符。注意True / False 首字母一定要大写

    test = "absd
    fscdsd
    sdhgf"
    v = test.splitlines()
    print(v)====>['absd', 'fscdsd', 'sdhgf']
    ***********************************
    test = "absd
    fscdsd
    sdhgf"
    v = test.splitlines(True)========>True 保留换行符
    print(v)=====>['absd ', 'fscdsd ', 'sdhgf']

    27)大小写转换swapcase()

    test = "Alise"
    v = test.swapcase()
    print(v)====>结果是:aLISE

    28) zfill(宽度),原字符串靠右,左边剩余用0补齐

    test = "Alisa"
    v = test.zfill(12)
    print(v)结果是:
    0000000Alisa

    *29)replace(old, new, count) 替换.

    其中old是指原来的字符元素;new是指新的字符元素;count 是指替换几个,如果count 不写,默认全部替换

    -全部替换,count不写。例如:

    test = "alisaalisaalisaalisa"
    v = test.replace("sa","xx")
    print(v)=====>结果为:alixxalixxalixxalixx

    -count 写具体数字。例如:

    test = "alisaalisaalisaalisa"
    v = test.replace("sa","xx",2)
    print(v)=====>结果为:alixxalixxalisaalisa

     灰魔法

    *1)  []  索引                                                                                                                        索引/下标:alisa

    -通过索引/下标来获取字符串中的某一个字符。代码:x[],其中中括号中输入的是索引/下标                                01234

                                                      

    test = "Alisa"

    v = test[0]====>取变量test位置是0的索引内容

    print(v)====>结果是:A

     -获取切片   代码: x[x:x]

    test = "Alisa"
    v = test[0:-1]===>[0:-1]是大于等于0,小于-1。-1代表的是最后一个字符元素。
    print(v)====>结果是:Alis

     *2)len 查看当前字符串有多少个字符

    test = "Alisa"
    v = len(test)
    print(v)
    结果是:5

     *3)for 循环,将对象中每个元素都进行循环

     代码: for 变量名 in 字符串 :

                    print()====>此处是操作,任何其他操作都可以。

    test = "Alisa"
    for xc in test: ===>xc是自己设置的变量名
    print(xc)
    结果是:

    A
    l
    i
    s
    a

    
    

    注意:len(),索引,切片,for循环在几乎所有的数据类型都可以使用

            字符串一旦创建就不可修改,一旦修改或者拼接,就会重新生成字符串

     只要能被for进行循环获取,就是可迭代对象。

    *4)range

    -帮助创建连续数字。

    test = range(100)
    print(test)===>结果是:range(0, 100)
    *************************************
    test = range(100)===>输出内容小于100
    for v in test:
    print(v)
    结果是:0
    1
        ……
        99

    -按照步长设置不连续数字

    test = range(0,100,5)===>0,100是指数字范围>=0,<=100,5是步长
    for v in test:
    print(v)
    结果是:0
        5
        10
        ……
        95

    练习题 

    1,将输入的文字对应的索引打印出来

    -使用for循环

    test = input("请输入:")

    print(test)  ====>首先显示输入内容

    l = len(test)

    print(l) =====>查看输入内容的长度

    ===>然后需要在0-l的范围内循环

    for t in range(0, l)

      print(t, test[t])

    简化后代码为:

    test = input("请输入:")
    for t in range(0, len(test)):
    print(t, test[t])
    结果为:

    请输入:wode
    0 w
    1 o
    2 d
    3 e

    -使用while循环

    test = input("请输入")
    count = 0
    while count < len(test):
    print(count, test[count])
    count += 1

    2,实现整数加法计算 例如:5+9 /5 +9/5+ 9

    content = input("请输入内容:")
    v1, v2 = content.split("+")=====>按“+”进行分割,分割完成后得到的是字符串。
    v1 = int(v1.strip()) =====>字符串转换成数字
    v2 = int(v2.strip())
    s =v1 + v2
    print(s)

    3,计算用户输入内容有几个十进制小数,几个字母。

    content = input("请输入内容")
    number = 0
    count = 0
    for item in content:
    if item.isnumeric() == True: =====>判断元素是否是数字
    number += 1
    elif item.isalpha() == True: =======>判断元素是否为字母
    count += 1

    print(number, count)

    4,计算用户输入验证码,不区分大小写

    while True:

    while True:
    code = check_code()
    print(code)
    inp = input("请输入验证码")
    if inp.lower() == code.lower():====>两边同样是大写或者小写,就是表示不区分大小写
    print("验证码输入成功")
    break
    else:
    print("请重新输入")

     5,在开发敏感词过滤程序,提示用户输入内容,如果输入内容包含特殊的字符如:“苍老师”,“东京热”,则将内容替换为***

    li = ["苍老师","东京热"]====>列表
    inp = input("请输入")
    for item in li:
    if item in inp:
    inp = inp.replace(item,"***")
    print(inp)

    6,请使用代码实现:

    li =["alex","eric","rain"] 利用下划线将列表的每一个元素拼接成字符串“alex_eric_rain"

    v = "_".join(li)

    print(v)====> 结果是:alex_eric_rain

    7,制作趣味模版

    需求:等待用户输入名字,地点,爱好,根据用户名字和爱好进行任意实现 如:敬爱可亲的xxx,最喜欢在xxx地方干xxx

    hobby = “敬爱可亲的{0},最喜欢在{1}干{2}"

    new = hobby.format("alisa","home","sleepping")

    print(new)

    8,制作表格

    循环提示用户输入:用户名,密码,邮箱(要求用户输入长度不超过20个字符,如果超过则只有前20个字符有效)如果用户输入q或者Q表示不再继续输入,将用户输入的内容以表格形式打印 

    s = ""
    while True:
    v1 = input("请输入用户名")
    v2 = input("请输入密码")
    v3 = input("请输入邮箱")
    mo = "{0} , {1} , {2} "
    v = mo.format(v1, v2, v3)
    s = s + v
    if v1.lower() == "q":
    break
    print(s.expandtabs(20))

    3,列表(list) 类

    列表是有序的,元素是可以被修改的

    灰魔法

    对象:li = [xx,xx,xx] 

    -中括号括起来,

    -中间以,分割每个元素

    -可以嵌套任何类型。

    -列表中元素可以是字符串,数字,列表,布尔值

    -可以通过索引/切片取值

    li =[12,34,56]
    print(li[0])===>结果是12,索引取值
    ********************************
    列表中嵌套列表,取嵌套列表中的元素。代码是:列表[嵌套列表所在元素的索引][嵌套列表索引][嵌套列表中元素所在索引]

    li = [12, 34, [45, [29, 31], 67], 56]
    需要取出29,代码如下:
    v = li[2][1][0]  =====>先写所在元素索引[2],然后写元素中嵌套的列表的索引[1],最后写值的索引[0]
    print(v)======>结果是29,索引取值

    ****************
    li =[12,34,56]
    print(li[0:2])===切片取值,结果是[12, 34]

    -for 循环

    li =[12, 34, [45, 67], 56]
    for item in li:
    print(item)
    结果是:
    12
    34
    [45, 67]
    56

    -列表元素可以被修改,修改列表中元素:

    注意:如果需要修改的列表元素是字符串,则不能用索引/切片直接赋值修改。ps:因为字符串一旦创建不可修改。

    1)通过索引进行修改

    首先用索引找到要修改的元素如li[x],然后直接赋值代码是:li[x] = ?

    li =[12, 34, [45, 67], 56]
    li[1] = 20
    print(li)====>结果是:[12, 20, [45, 67], 56]

    2)通过切片进行修改

    首先先找到要修改的元素切片如li[1, 3],然后直接赋值修改代码是:li[x:x] = [?, ?]

    li = [12, 34, [45, 67], 56]
    li[1:3] = [20, 23]
    print(li)=====>结果是:[12, 20, 23, 56]

    -列表元素可以被删除。删除代码如下:

    1)del  代码:del 索引 / del 切片

    li =[12, 34, [45, 67], 56]
    del li[1]====>删除列表li中的索引是1的元素(34)
    print(li)=====>结果是:[12, [45, 67], 56]

    *******************************************

    li = [12, 34, [45, 67], 56]
    del li[1:3]
    print(li)======>结果是:[12, 56]

    2) pop 删除列表某个值,并获取删除的这个值

    代码:x.pop(索引位置),若索引位置不写,默认是删除最后一个元素。

    li = [ 21, 34, 21, [21, 23]]
    v = li.pop()
    print(li)====>结果是:[21, 34, 21]
    print(v)=====>结果是:[21, 23]

    *********************************************************

    li = [ 21, 34, 21, [21, 23]]
    v = li.pop(1)
    print(li)======>结果是:[21, 21, [21, 23]]
    print(v)=======>结果是:34

    3)remove 删除列表中的指定值,从左开始找到并删除,后边不执行(左边优先)

    代码:x.remove(值)

    li = [ 21, 34, 21, [21, 23]]
    li.remove(21)=====从左开始,第一个就是21,直接删除然后不往下执行。
    print(li)=====>结果是:[34, 21, [21, 23]]

    4)clear 清空

    代码:x.clear()

    li = ["wode", '我们']
    li.clear()
    print(li)====>结果是:[]

    -支持in操作 ,判断是否是列表中的元素

    判断是否在列表里边(指元素),即是否是列表中的元素。

    li = [12, 34, [45, 67], 56]
    v = 34 in li
    print(v)=====>结果是:True
    ***********************
    li = [12, 34, [45, 67], 56]
    v = 67 in li====>判断67是否是列表中的元素,由于[45, 67]才是li里的一个元素,所以67不是列表的元素

    print(v)======>结果是:False
    
    

    - 字符串转换成列表 代码是:list(字符串)

      a = "sdhfg"

      a1 = list(a)

    print(a1)=======>结果是:['s', 'd', 'h', 'f', 'g']

    -列表转换成字符串

    1)如果列表里既有数字又有字符串,需要自己写for循环一个一个处理。如下:

    li =[12, 34, "wode", '我们']
    s = ""
    for v in li:
    s = s + str(v)
    print(s)====>结果是:1234wode我们

    2)如果列表只有字符串,可以使用代码:"".join()

    li = ["wode", '我们']
    a = "".join(li)
    print(a)====>结果是:wode我们

    -数字不能转换成列表

    -enumerate(列表/字典/元祖,序号从几开始) 给可迭代对象添加序号

    如下:

    li = (12, 22, 33, 44)
    for k, v in enumerate(li, 1):
    print(k, v)====>1 12
                2 22
                3 33
                4 44


     list类中提供的方法

    对象调用某个方法:对象.某个方法(....)。

    例如对象:列表li, 方法append,  li.append()就是li对象调用了append方法。

    *1)append(self, *args, **kwargs) 在原来列表最后追加参数(整个元素)

    代码:x.append(a) 其中 (a)称为参数

    li = ["wode", '我们']
    li.append([1234])=====>由于列表可以修改,所以可以直接操作,[1234]作为一个元素直接添加在列表最后。

    print(li)====>结果是:['wode', '我们', [1234]]

    2)clear 清空

    代码:x.clear()

    li = ["wode", '我们']
    li.clear()
    print(li)====>结果是:[]

    3)copy 拷贝(浅拷贝)

    代码:x.copy()

    li = ["wode", '我们']
    v = li.copy()
    print(v)====>['wode', '我们']

    4) count 计算元素出现的次数

    代码:x.count()

    li = ["wode", '我们', 21, 34, [21, 23]]
    v = li.count(21)=====>元素21只出现一次,[21, 23]中的21 不计算,因为它不是列表的一个元素。
    print(v)====>结果是:1

    *5)extend 扩展原列表。参数:可迭代对象 

    代码:x.extend(可迭代对象)

       li = [21, 34, [21, 23]]

      li.extend("我不高兴")

    print(li)======>结果是:[21, 34, [21, 23], '我', '不', '高', '兴']

     6) index 根据值查找当前值所在列表中的索引位置,从左到右找,找到第一个直接输出索引位置,后边不执行

    li = [21, 34, 21, [21, 23]]
    v = li.index(21)
    print(v)=====结果是:0

    7)insert 在指定索引位置前插入

    代码:x.insert(索引,插入内容)====>插入位置在索引前

    li = [21, 34, 21, [21, 23]]
    li.insert(2,["我们", 12])====>在索引2前边添加["我们", 12],即是在元素21前边添加["我们", 12]
    print(li)=====>结果是:[21, 34, ['我们', 12], 21, [21, 23]]

    8) pop 删除列表某个值,并获取删除的这个值

    代码:x.pop(索引位置),若索引位置不写,默认是删除最后一个元素。

    li = [21, 34, 21, [21, 23]]
    v = li.pop()
    print(li)====>结果是:[21, 34, 21]
    print(v)=====>结果是:[21, 23]

    *********************************************************

    li = [21, 34, 21, [21, 23]]
    v = li.pop(1)
    print(li)======>结果是:[21, 21, [21, 23]]
    print(v)=======>结果是:34

    9)remove 删除列表中的指定值,从左开始找到并删除,后边不执行(左边优先)

    代码:x.remove(值)

    li = [21, 34, 21, [21, 23]]
    li.remove(21)=====从左开始,第一个就是21,直接删除然后不往下执行。
    print(li)=====>结果是:[34, 21, [21, 23]]

    10)reverse 将列表中的元素反转。

    代码:x.reverse()

    li = [21, 34, 21, [21, 23]]
    li.reverse()
    print(li)=======>[[21, 23], 21, 34, 21]

    11)sort 给列表中的元素按照一定的顺序排序

     代码:x.sort(顺序)

     1,元素从小到大排序代码: x.sort()

    li = [21, 34, 21, 56]
    li.sort()
    print(li)=====>结果是:[21, 21, 34, 56]

     2, 元素从大到小排序代码:x.sort(reverse=True)

    li = [21, 34, 21, 56]
    li.sort(reverse=True)
    print(li)======>结果是:[56, 34, 21, 21]
    
    

    3, cmp

    4, key 

    5,sorted

    4,元祖(tuple)

    元祖基本操作

    列表有序,元素可以被修改

    li = [11, 22, 33, 44]

    1,元祖的一级元素不可以被修改,并且元组不可以被增加或者删除。ps:推荐:书写元祖时在最后一个元素后加上逗号, 

    tu = (11, 22, 33, 44,)

    2,元祖可以通过索引/切片取值

    tu = (11, 22, 33, 44,)
    v1 = tu[0]======>通过索引取值,结果是:11
    v2 = tu[0:3]=====>通过切片取值,结果是:(11, 22, 33)
    print(v1,v2)

    3,可以被for 循环,是可迭代对象

    tu = (11, 22, 33, 44,)
    for item in tu:
    print(item)
    结果是:

    11
    22
    33
    44

    4,字符串,列表,元祖 相互转换

    -字符串转换成元祖 tuple(字符串)

    s = "asddef234"
    s2 = tuple(s)
    print(s2)===>结果是('a', 's', 'd', 'd', 'e', 'f', '2', '3', '4')

    -列表转换成元祖 tuple(列表)

    li = [45, 32, "sdf"]
    li1 = tuple(li)
    print(li1)====>结果是:(45, 32, 'sdf')

    -元祖转换成字符串

    1)如果元祖中元素都是字符串可以使用join 方法 代码:"".join(元祖)

    tu = ("sde", "ed",)
    v = "".join(tu)
    print(v)===>结果是:sdeed

    2)如果元祖中元素既有字符串也有数字,代码如下:

    tu = ("sde", "ed", 123,)
    s = ""
    for item in tu:
    s = s +str(item)
    print(s)====>结果是:sdeed123

    -元祖转换成列表 list(元祖)

    tu = ("sde", "ed", 123,)
    v = list(tu)
    print(v)====>结果是:['sde', 'ed', 123]

    5,元祖也是有序的,元祖取值 如下:

    tu = (111, "alex",[(22, 33,)])
    取出22 代码如下:
    v = tu[2][0][0]
    print(v)===>结果是:22

    6,元祖的一级元素不可修改/删除/增加,但是其中的列表可以修改。

    tu = (111, "alex",[(22, 33,)])=====>(22, 33,)中的22 不可修改因为它是元祖(22, 33,)的一级元素

    tu[2][0] = 12
    print(tu)====>结果是:(111, 'alex', [12])

    解析:

    tu[2][0]取出来的是(22, 33,),它不是列表的一级元素
    (22, 33,)是在列表中的,而列表可以修改的,所以就可以修改为12

     7,方法

    -count,指定元素在元祖里出现的次数

    代码:元祖.count(元素)

    -index 指定元素的索引

    代码:元祖.index()

    5,字典(dict)

    -格式:{key: value},

    -value 可以是任何类型:字符串,布尔值,元祖,数字,字典,列表等等

    -列表,字典不能作为字典的key,其他都可以

    1)当True/False 作为key 时 并字典内有key 是1/0时,True/False 会与1/0重复,只会显示一个.

    ps:True(0) False(1)

    infor = {"a1":"b1", 1: {"c4":[55, 38], 5: 8}, True: (12, [22, 33],)}
    print(infor)========>{'a1': 'b1', 1: (12, [22, 33])}

    2)当True/False 作为key 时 并字典没有key 是1/0时,会显示True

    infor = {"a1":"b1", 3: {"c4":[55, 38], 5: 8}, True: (12, [22, 33],)}
    print(infor)==========>{'a1': 'b1', 3: {'c4': [55, 38], 5: 8}, True: (12, [22, 33])}

    info = {"a1": "b1", "a2": "b2"}.  元素"a1" : "b1"是键值对,"a2" : "b2"也是,其中b1,b2 是字典里的value;a1,a2是key.

    -字典无顺序,所以没有切片,只能索引

    -字典取值

    代码:字典[key]

    infor = {"a1": "b1", 3: "c1"}
    v = infor["a1"]
    print(v)====>结果是:b1

    注意:如果字典内value嵌套元祖/列表时,要取嵌套元祖/列表内的值   代码:字典[key] [元祖/列表索引] [值索引]

             如果字典内value 嵌套字典时,要取嵌套字典内的值 代码:字典[key] [嵌套字典的key]

    infor = {"a1": "b1", 3: {"c4": [55, 38]}, 5: (12, [22, 33],)}
    v1 = infor[5][1][0]
    print(v1)=========>结果是:22
    v2 = infor[3]["c4"][0]
    print(v2)=========>结果是:55

    -del 删除字典内元素

    代码:del 字典[key]

    删除[55, 38]
    infor = {"a1": "b1", 3: {"c4":[55, 38], 5: 8}, 5: (12, [22, 33],)}
    del infor[3]["c4"]
    print(infor)=======>结果是:{'a1': 'b1', 3: {5: 8}, 5: (12, [22, 33])}

    -for 循环

    for 循环默认只输出key 代码: for 变量 in 字典:

                     print(变量) 

    infor = {"a1": "b1", 3: {"c4":[55, 38], 5: 8}, 5: (12, [22, 33],)}
    for item in infor :
    print(item)========>结果是:a1
                    3
                    5

    ps:另外输出key还有另一个代码:for 变量 in 字典.keys:

                                  print (变量)

     

    infor = {"a1": "b1", 3: {"c4":[55, 38], 5: 8}, 5: (12, [22, 33],)}
    for item in infor.keys() :
    print(item)=======>结果是:a1
                   3
                   5


    如果只需要输出value ,代码: for 变量 in 字典.values()

                           print (变量)

    如果既要获得key,又要获得value

    1)代码:

    for 变量 in 字典:

      print (变量, 字典[变量])

    infor = {"a1": "b1", 3: {"c4":[55, 38], 5: 8}, 5: (12, [22, 33],)}

    for item in infor:

     print(item, infor[item])===>结果是:a1 b1

                      3 {'c4': [55, 38], 5: 8}

                       5 (12, [22, 33])

    
    

    2) 代码:

    for k, v in 字典.items():    ======>k, v 是键值对变量

      print(k, v)

    infor = {"a1": "b1", 3: {"c4":[55, 38], 5: 8}, 5: (12, [22, 33],)}

    for k, v in infor.items():

       print(k, v)======>结果是:a1 b1

                  3 {'c4': [55, 38], 5: 8}

                 5 (12, [22, 33])

    -功能

    1)clear 清空字典

    2)copy 浅拷贝

    3)fromkeys 根据序列,创建字典,并指定统一的值 .代码:dict.fromkeys(列表,value)

    fromkeys 支持直接写类名执行这个功能

    v = dict.fromkeys(["wode", 23], 54)
    print(v)======>结果是:{'wode': 54, 23: 54}

    4)get : 根据key 取值,如果key 不存在,可以指定默认值(默认None);如果key存在,直接输出key对应的value 值

    代码:字典.get(key, 设置默认值),默认值不写,默认None

    dic = {12: "wo", 34: 56}
    v = dic.get(22)
    print(v)=====>结果是:None

    **************************

    dic = {12: "wo", 34: 56}
    v = dic.get(22,"不存在")
    print(v)=====>结果是:不存在
    v2 = dic.get(12,"不存在")
    print(v2)======>结果是:wo

    *5)items 运用在for 循环中,获取key以及其对应的value 

    代码:

    for k, v in 字典.items():

      print(k, v)

    dic = {12: "wo", 34: 56}
    for k, v in dic.items():
    print(k, v)===结果是:

    12 wo
    34 56

    *6)keys 只获取字典中所有的keys

    代码:

    for x in 字典.keys():

      print(x)

    dic = {12: "wo", 34: 56}
    for x in dic.keys():
    print(x)====>结果是:

    12
    34

    *7)values 只获取字典中的values

    代码:

    for x in 字典.values():

      print(x)

    dic = {'k1': "wo", 'v2': 56}
    for x in dic.values():
    print(x)===>结果是:wo
    56

     

    8) pop 根据key,删除指定键值对,并获取删除的键值对中的value值

    代码:字典.pop(删除指定key,设定值) ps:设定值可写可不写。如果写上,一旦指定的key不存在字典中,可以输出设定值

    dic = {12: "wo", 34: 56, 22: "nide"}
    v = dic.pop(12)
    print(dic)====>结果是:{34: 56, 22: 'nide'}
    print(v)======>结果是:wo

    *********************************************

    dic = {12: "wo", 34: 56, 22: "nide"}
    v = dic.pop(33, "不存在")
    print(v)======>结果是:不存在

    9)popitem() 随机删除键值对并输出键值对

    代码:字典.popitem() /或者k, v = 字典.popitem()

    dic = {12: "wo", 34: 56, 22: "nide"}
    v = dic.popitem()
    print(v)=====>结果是:(22, 'nide')
    ************************************
    dic = {12: "wo", 34: 56, 22: "nide"}
    k, v = dic.popitem()
    print(k, v)======>结果是:22 nide

    10)setdefault 设置值,代码:字典.setdefault(设置的key, 设置value)

    -如果设置的key在字典中存在,不设置,并获取当前key在字典中对应的value

    dic = {12: "wo", 34: 56}
    v = dic.setdefault(12, "在吗")
    print(dic)=====>结果是:{12: 'wo', 34: 56}
    print(v)=======>结果是:wo

    -如果设置的key在字典中不存在,设置,并获取设置value

    dic = {12: "wo", 34: 56}
    v = dic.setdefault("你好", "在吗")
    print(dic)======>结果是:{12: 'wo', 34: 56, '你好': '在吗'}
    print(v)=====>结果是:在吗

     *11) update 更新字典中的键值对,如果字典中包含更新的key,直接将原value 更新成新value;如果字典中不包含更新的key,直接把键值对添加进字典中。有两种方式如下:

    -代码:字典.update({更新的key: 更新的value})

    dic = {12: "wo", 34: 56}
    dic.update({12: 11, 33: 55})
    print(dic)==========>{12: 11, 34: 56, 33: 55}

    -代码: 字典.update(更新的key=更新的value)

    dic = {'k1': "wo", 'v2': 56}
    dic.update(k1 = 22, v3 = 456)
    print(dic)=====>结果是:{'k1': 22, 'v2': 56, 'v3': 456}

    6,布尔值(bool)

    以下结果都是False:

    None "" () [] {} 0

  • 相关阅读:
    配置linux 防火墙,只有固定IP和端口才能能访问完美解决
    转.HTML中img标签的src属性绝对路径问题解决办法,完全解决!
    weblogic 安全漏洞问题解决
    转 echarts 的使用时遇到的坑 初始化和销毁,亲测有效!
    在使用 Fortify进行源码扫描时需要做对项目需要做什么?
    eclipse 导出 jar包详细步骤
    转 Fortofy扫描漏洞解决方案2
    JSON 之 SuperObject(1)
    Delphi使用JSON解析调用淘宝IP地址库REST API 示例
    Jsoncpp的使用
  • 原文地址:https://www.cnblogs.com/wode110/p/14220375.html
Copyright © 2011-2022 走看看