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

    不可变数据(3个):

      数字(number)

      字符串(string)

      元组(tuple)

    可变数据(3个):

      列表(list)

      字典(dict)

      集合(set)

    不可变数据

    一. 数字(number)

    1. int(整数)

    #描述: int() 函数用于将一个字符串或数字转换为整型
    #语法: class int(x, base=10)
    #参数: x -- 字符串或数字      base -- 进制数, 默认十进制
    #返回值: 返回整型数据

    2. float(浮点数)

    #描述: float() 函数用于将整数和字符串转换成浮点数
    #语法: class float([x])
    #参数: x -- 整数或字符串
    #返回值: 返回浮点数

    3. bool(布尔值)

    #描述: bool() 函数用于将给定参数转换为布尔类型, 如果没有参数, 返回 False. bool 是 int 的子类.
    #语法: class bool([x])
    #参数: x -- 要进行转换的参数
    #返回值: 返回 Ture 或 False

    4. complex(复数)

    #描述: complex() 函数用于创建一个值为real + imag * j 的复数或者转化一个字符串或数为复数. 如果第一个参数为字符串, 则不需要指定第二个参数
    #语法: class complex([real[, imag]])
    #参数: 
    real -- int, long, float或字符串
    imag -- int, long, float
    #返回值: 返回一个复数
    
    #实例:
    >>> complex(1, 2)
    (1 + 2j)
    
    >>> complex(1) # 数字
    (1 + 0j)
    
    >>> complex("1") # 当做字符串处理
    (1 + 0j)
    
    # 注意:这个地方在"+"号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错
    >>> complex("1+2j")
    (1 + 2j)

    二. 字符串(string)

    字符串是 Python 中最常用的数据类型. 我们可以使用单引号或双引号来创建字符串.

    字符串内建函数(40个):(以首字母a~z进行排序)

    #描述:
    center() 方法返回一个指定的宽度 width 居中的字符串, fillchar 为填充的字符, 默认为空格
    
    #语法:
    str.center(width[, fillchar])
    
    #参数:
    width -- 字符串的总宽度
    fillchar -- 填充字符
    
    #返回值: 
    返回一个指定的宽度 width 居中的字符串, 如果 width 小于字符串宽度直接返回字符串, 否则使用 fillchar 去填充
    
    #实例:
    str = "[www.runoob.com]"
    print (str.center(40, '*'))
    # 输出结果:
    ************[www.runoob.com]************
    center()
    #描述: capitalize()将字符串的第一个字母变成大写,其他字母变小写
    
    #语法: str.capitalize()
    
    #参数: 无
    
    #返回值: 该方法返回一个首字母大写的字符串
    capitalize()
    #描述:
    count() 方法用于统计字符串里某个字符出现的次数. 可选参数为在字符串搜索的开始与结束位置.
    
    #语法:
    str.count(sub, start= 0,end=len(string))
    
    #参数:
    sub -- 搜索的子字符串
    start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0
    end -- 字符串中结束搜索的位置. 字符中第一个字符的索引为 0. 默认为字符串的最后一个位置.
    
    #返回值:
    该方法返回子字符串在字符串中出现的次数
    
    #实例:
    str="www.runoob.com"
    sub='o'
    print ("str.count('o') : ", str.count(sub))
    # 输出结果:
    str.count('o') :  3
    count()
    #描述:
    decode() 方法以指定的编码格式解码 bytes 对象. 默认编码为 'utf-8'.
    
    #语法:
    bytes.decode(encoding="utf-8", errors="strict")
    
    #参数:
    encoding -- 要使用的编码,如"UTF-8"
    errors -- 设置不同错误的处理方案. 默认为 'strict', 意为编码错误引起一个UnicodeError. 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 codecs.register_error() 注册的任何值
    
    #返回值:
    该方法返回解码后的字符串
    decode()
    #描述:
    encode() 方法以指定的编码格式编码字符串. errors参数可以指定不同的错误处理方案
    
    #语法:
    str.encode(encoding='UTF-8',errors='strict')
    
    #参数:
    encoding -- 要使用的编码,如: UTF-8
    errors -- 设置不同错误的处理方案.
    默认为 'strict',意为编码错误引起一个UnicodeError.
    其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 codecs.register_error() 注册的任何值
    
    #返回值:
    该方法返回编码后的字符串, 它是一个 bytes 对象
    encode()
    #描述:
    endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True, 否则返回False. 可选参数"start""end"为检索字符串的开始与结束位置
    
    #语法:
    str.endswith(suffix[, start[, end]])
    
    #参数:
    suffix -- 该参数可以是一个字符串或者是一个元素
    start -- 字符串中的开始位置
    end -- 字符中结束位置
    
    #返回值:
    如果字符串含有指定的后缀返回True,否则返回False
    endswith()
    #描述:
    expandtabs() 方法把字符串中的 tab 符号('	')转为空格,tab 符号('	')默认的空格数是 8
    
    #语法:
    str.expandtabs(tabsize=8)
    
    #参数:
    tabsize -- 指定转换字符串中的 tab 符号('	')转为空格的字符数
    
    #返回值:
    该方法返回字符串中的 tab 符号('	')转为空格后生成的新字符串
    expandtabs()
    #描述:
    find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1#语法:
    str.find(str, beg=0, end=len(string))
    
    #参数:
    str -- 指定检索的字符串
    beg -- 开始索引,默认为0
    end -- 结束索引,默认为字符串的长度
    
    #返回值:
    如果包含子字符串返回开始的索引值,否则返回-1
    
    #实例:
    >>>info = 'abca'
    >>> print(info.find('a'))      # 从下标0开始,查找在字符串里第一个出现的子串,返回结果:0
    0
    >>> print(info.find('a', 1))   # 从下标1开始,查找在字符串里第一个出现的子串:返回结果3
    3
    >>> print(info.find('3'))      # 查找不到返回-1
    -1
    find()
    #描述:
    index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常
    
    #语法:
    str.index(str, beg=0, end=len(string))
    
    #参数:
    str -- 指定检索的字符串
    beg -- 开始索引,默认为0
    end -- 结束索引,默认为字符串的长度
    
    #返回值:
    如果包含子字符串返回开始的索引值,否则抛出异常
    index()
    #描述:
    isalnum() 方法检测字符串是否由字母和数字组成
    
    #语法:
    str.isalnum()
    
    #参数:
    #返回值:
    如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
    isalnum()
    #描述:
     isalpha() 方法检测字符串是否只由字母组成
    
    #语法:
    str.isalpha()
    
    #参数:
    #返回值:
    如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
    isalpha()
    #描述:
    isdigit() 方法检测字符串是否只由数字组成
    
    #语法:
    str.isdigit()
    
    #参数:
    #返回值:
    如果字符串只包含数字则返回 True, 否则返回 False
    isdigit()
    #描述:
    islower() 方法检测字符串是否由小写字母组成
    
    #语法:
    str.islower()
    
    #参数:
    #返回值:
    如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
    islower()
    #描述:
    isupper() 方法检测字符串中所有的字母是否都为大写
    
    #语法:
    str.isupper()
    
    #参数:
    #返回值:
    如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
    isupper()
    #描述:
    isnumeric() 方法检测字符串是否只由数字组成。这种方法是只针对unicode对象
    [注意]: 定义一个字符串为Unicode,只需要在字符串前添加 'u' 前缀即可
    
    #语法:
    str.isnumeric()
    
    #参数:
    #返回值:
    如果字符串中只包含数字字符,则返回 True,否则返回 False
    isnumeric()
    #描述:
    isspace() 方法检测字符串是否只由空白字符组成
    
    #语法:
    str.isspace()
    
    #参数:
    #返回值:
    如果字符串中只包含空格,则返回 True,否则返回 False
    isspace()
    #描述:
    istitle() 方法检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写
    
    #语法:
    str.istitle()
    
    #参数:
    #返回值:
    如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False
    istitle()
    #描述:
    isdecimal() 方法检查字符串是否只包含十进制字符。这种方法只存在于unicode对象
    [注意]: 定义一个十进制字符串,只需要在字符串前添加 'u' 前缀即可
    
    #语法:
    str.isdecimal()
    
    #参数:
    #返回值:
    如果字符串是否只包含十进制字符返回True,否则返回False
    isdecimal()
    #描述:
    join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串
    
    #语法:
    str.join(sequence)
    
    #参数:
    sequence -- 要连接的元素序列
    
    #返回值:
    返回通过指定字符连接序列中元素后生成的新字符串
    join()
    #描述:
    len() 方法返回对象(字符、列表、元组等)长度或项目个数
    
    #语法:
    len( s )
    
    #参数:
    s -- 对象
    
    #返回值:
    返回对象长度
    len()
    #描述:
    lower() 方法转换字符串中所有大写字符为小写
    
    #语法:
    str.lower()
    
    #参数:
    #返回值:
    返回将字符串中所有大写字符转换为小写后生成的字符串
    lower()
    #描述:
    ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串
    
    #语法:
    str.ljust(width[, fillchar])
    
    #参数:
    width -- 指定字符串长度
    fillchar -- 填充字符,默认为空格
    
    #返回值:
    返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串
    
    #实例:
    str = "Hello, Word!"
    print (str.ljust(20, '*'))
    # 输出结果:
    Hello, Word!********
    ljust()
    #描述:
    lstrip() 方法用于截掉字符串左边的空格或指定字符
    
    #语法:
    str.lstrip([chars])
    
    #参数:
    chars --指定截取的字符
    
    #返回值:
    返回截掉字符串左边的空格或指定字符后生成的新字符串
    lstrip()
    #描述:
    maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
    两个字符串的长度必须相同,为一一对应的关系。
    
    #语法:
    str.maketrans(intab, outtab)
    
    #参数:
    intab -- 字符串中要替代的字符组成的字符串
    outtab -- 相应的映射字符的字符串
    
    #返回值:
    返回字符串转换后生成的新字符串
    
    #实例:
    intab = "aeiou"
    outtab = "12345"
    trantab = str.maketrans(intab, outtab)
    
    str = "this is string example....wow!!!"
    print (str.translate(trantab))
    # 输出结果:
    th3s 3s str3ng 2x1mpl2....w4w!!!
    maketrans()
    #描述:
    max() 方法返回字符串中最大的字母
    
    #语法:
    max(str)
    
    #参数:
    str -- 字符串
    
    #返回值:
    返回字符串中最大的字母
    max()
    #描述:
    min() 方法返回字符串中最小的字母
    
    #语法:
    min(str)
    
    #参数:
    str -- 字符串
    
    #返回值:
    返回字符串中最小的字母
    min()
    #描述:
    rfind() 返回字符串最后一次出现的位置,如果没有匹配项则返回-1
    
    #语法:
    str.rfind(str, beg=0 end=len(string))
    
    #参数:
    str -- 查找的字符串
    beg -- 开始查找的位置,默认为0
    end -- 结束查找位置,默认为字符串的长度
    
    #返回值:
    返回字符串最后一次出现的位置,如果没有匹配项则返回-1
    rfind()
    #描述:
    rindex() 返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间
    
    #语法:
    str.rindex(str, beg=0 end=len(string))
    
    #参数:
    str -- 查找的字符串
    beg -- 开始查找的位置,默认为0
    end -- 结束查找位置,默认为字符串的长度
    
    #返回值:
    返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常
    rindex()
    #描述:
    rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串
    
    #语法:
    str.rjust(width[, fillchar])
    
    #参数:
    width -- 指定填充指定字符后中字符串的总长度
    fillchar -- 填充的字符,默认为空格
    
    #返回值:
    返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串
    rjust()
    #描述:
    rstrip() 删除 string 字符串末尾的指定字符(默认为空格)
    
    #语法:
    str.rstrip([chars])
    
    #参数:
    chars -- 指定删除的字符(默认为空格)
    
    #返回值:
    返回删除 string 字符串末尾的指定字符后生成的新字符串
    rstrip()
    #描述:
    replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次
    
    #语法:
    str.replace(old, new[, max])
    
    #参数:
    old -- 将被替换的子字符串。
    new -- 新字符串,用于替换old子字符串
    max -- 可选字符串, 替换不超过 max 次
    
    #返回值:
    返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次
    replace()
    #描述:
    split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串
    
    #语法:
    str.split(str="", num=string.count(str))
    
    #参数:
    str -- 分隔符,默认为所有的空字符,包括空格、换行(
    )、制表符(	)等
    num -- 分割次数
    
    #返回值:
    返回分割后的字符串列表
    split()
    #描述:
     splitlines() 按照行('
    ', '
    ', 
    ')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符
    
    #语法:
    str.splitlines([keepends])
    
    #参数:
    keepends -- 在输出结果里是否去掉换行符('
    ', '
    ', 
    '),默认为 False,不包含换行符,如果为 True,则保留换行符
    
    #返回值:
    返回一个包含各行作为元素的列表
    splitlines()
    #描述:
    startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查
    
    #语法:
    str.startswith(str, beg=0,end=len(string))
    
    #参数:
    str -- 检测的字符串
    strbeg -- 可选参数用于设置字符串检测的起始位置
    strend -- 可选参数用于设置字符串检测的结束位置
    
    #返回值:
    如果检测到字符串则返回True,否则返回False
    startswith()
    #描述:
    strip() 方法用于移除字符串头尾指定的字符(默认为空格)或字符序列。
    [注意]: 该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
    
    #语法:
    str.strip([chars])
    
    #参数:
    chars -- 移除字符串头尾指定的字符序列
    
    #返回值:
    返回移除字符串头尾指定的字符序列生成的新字符串
    strip()
    #描述:
    swapcase() 方法用于对字符串的大小写字母进行转换
    
    #语法:
    str.swapcase()
    
    #参数:
    #返回值:
    返回大小写字母转换后生成的新字符串
    swapcase()
    #描述:
     title() 方法返回"标题化"的字符串, 就是说所有单词的首个字母转化为大写,其余字母均为小写
    
    #语法:
    str.title()
    
    #参数:
    #返回值:
    返回"标题化"的字符串,就是说所有单词的首字母都转化为大写
    title()
    #描述:
    translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符,要过滤掉的字符放到 deletechars 参数中
    
    #语法:
    str.translate(table)
    bytes.translate(table[, delete])
    bytearray.translate(table[, delete])
    
    #参数:
    table -- 翻译表,翻译表是通过 maketrans() 方法转换而来
    deletechars -- 字符串中要过滤的字符列表
    
    #返回值:
    返回翻译后的字符串,若给出了 delete 参数,则将原来的bytes中的属于delete的字符删除,剩下的字符要按照table中给出的映射来进行映射
    translate()
    #描述:
    upper() 方法将字符串中的小写字母转为大写字母
    
    #语法:
    str.upper()
    
    #参数:
    #返回值:
    返回小写字母转为大写字母的字符串
    upper()
    #描述:
    zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0
    
    #语法:
    str.zfill(width)
    
    #参数:
    width -- 指定字符串的长度。原字符串右对齐,前面填充0
    
    #返回值:
    返回指定长度的字符串
    zfill()

     三. 元组(tuple)

    #元组介绍:
    
    #(1)Python 的元组与列表类似,不同之处在于元组的元素不能修改, 即元组是只读列表。另外, 元素的不可变指的是元组的第一层不可变。
    
    #(2)元组使用小括号,列表使用方括号。
    
    #(3)元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
    
    #(4)创建空元组:
    tup1 = ()
    tup2 = tuple()
    
    #(5)元组和列表可以互相嵌套。
    
    #(6)注意:
    元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。
    元组介绍

    1. 修改元组

    元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:

    tup1 = (12, 34.56);
    tup2 = ('abc', 'xyz')
     
    # 以下修改元组元素操作是非法的。
    # tup1[0] = 100
     
    # 创建一个新的元组
    tup3 = tup1 + tup2;
    print (tup3)
    
    # 输出结果:
    (12, 34.56, 'abc', 'xyz')

     2. 删除元组

    元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:

    tup = ('Google', 'Runoob', 1997, 2000)
     
    print (tup)
    del tup;
    print ("删除后的元组 tup : ")
    print (tup)
    
    #以上实例元组被删除后,输出变量会有异常信息,输出如下所示:
    
    #删除后的元组 tup : 
    #NameError: name 'tup' is not defined

     3. 访问元组

    元组可以使用下标索引来访问元组中的值,如下实例:

    tup1 = ('Google', 'Runoob', 1997, 2000)
    tup2 = (1, 2, 3, 4, 5, 6, 7 )
     
    print ("tup1[0]: ", tup1[0])
    print ("tup2[1:5]: ", tup2[1:5])
    
    # 输出结果:
    tup1[0]:  Google
    tup2[1:5]:  (2, 3, 4, 5)

    4.  元组运算符

    与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

    #计算元素个数:
    len((1, 2, 3)) --> 3
    
    #连接:
    (1, 2, 3) + (4, 5, 6) --> (1, 2, 3, 4, 5, 6)
    
    #复制(重复):
    ('Hi!',) * 4 --> ('Hi!', 'Hi!', 'Hi!', 'Hi!')
    
    #元素是否存在:
    3 in (1, 2, 3) --> True
    
    #迭代:
    for x in (1, 2, 3)
        print (x,)
    #输出结果:
    1
    2
    3

    5. 元组索引,截取

    元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素.
    如下实例:

    L = ('Google', 'Taobao', 'Runoob')
    print(L[2])     # 'Runoob'
    print(L[-2])    # 'Taobao'
    print(L[1:])    # ('Taobao', 'Runoob')
    6. 元组内置函数
    # len(tuple) -- 计算元组元素个数
    
    # max(tuple) -- 返回元组中元素最大值
    
    # min(tuple) -- 返回元组中元素最小值
    
    # tuple(seq) -- 将列表转换为元组
    可变数据
     

    一. 列表(list)

    #1. 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
    
    #2. Python有6个序列的内置类型,但最常见的是列表和元组。
    
    #3. 序列都可以进行的操作包括索引,切片,加,乘,检查成员。
    
    #4. 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
    
    #5. 列表的数据项不需要具有相同的类型。
    
    #6. 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。
    
    #7. 与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。

    1. 增加

    #1. 描述:
    append() 方法用于在列表末尾添加新的对象。
    
    #2. 语法:
    list.append(obj)
    
    #3. 参数:
    obj -- 添加到列表末尾的对象。
    
    #4. 返回值:
    该方法无返回值,但是会修改原来的列表。
    
    #5. 实例:
    list1 = ['Google', 'Runoob', 'Taobao']
    list1.append('Baidu')
    print (list1)
    # 输出结果:
    ['Google', 'Runoob', 'Taobao', 'Baidu']
    list.append(obj)
    #1. 描述:
    extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。
    
    #2. 语法:
    list.extend(seq)
    
    #3. 参数:
    seq -- 元素列表。
    
    #4. 返回值:
    该方法没有返回值,但会在已存在的列表中添加新的列表内容。
    
    #5. 实例:
    list1 = ['Google', 'Runoob', 'Taobao']
    list2=list(range(5)) # 创建 0-4 的列表
    list1.extend(list2)  # 扩展列表
    print (list1)
    # 输出结果:
    ['Google', 'Runoob', 'Taobao', 0, 1, 2, 3, 4]
    list.extend(seq)
    #1. 描述:
    insert() 函数用于将指定对象插入列表的指定位置。
    
    #2. 语法:
    list.insert(index, obj)
    
    #3. 参数:
    index -- 对象obj需要插入的索引位置。
    obj -- 要插入列表中的对象。
    
    #4. 返回值:
    该方法没有返回值,但会在列表指定位置插入对象。
    
    #5. 实例:
    list1 = ['Google', 'Runoob', 'Taobao']
    list1.insert(1, 'Baidu')
    print (list1)
    # 输出结果:
    ['Google', 'Baidu', 'Runoob', 'Taobao']
    list.insert(index, obj)

    2. 删除

    #1. 描述:
    pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
    
    #2. 语法:
    list.pop([index=-1])
    
    #3. 参数:
    index -- 可选参数,要移除列表元素的索引值,不能超过列表总长度,默认为 index=-1,删除最后一个列表值。
    
    #4. 返回值:
    该方法返回从列表中移除的元素对象。
    
    #5. 实例:
    list1 = ['Google', 'Runoob', 'Taobao']
    list1.pop()
    print ("列表现在为 : ", list1)
    list1.pop(1)
    print ("列表现在为 : ", list1)
    
    # 输出结果:
    列表现在为 :  ['Google', 'Runoob']
    列表现在为 :  ['Google']
    list.pop()
    #1. 描述:
    remove() 函数用于移除列表中某个值的第一个匹配项
    
    #2. 语法:
    list.remove(obj)
    
    #3. 参数:
    obj -- 列表中要移除的对象
    
    #4. 返回值: 无
    
    #5. 实例:
    list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
    list1.remove('Taobao')
    print ("列表现在为 : ", list1)
    list1.remove('Baidu')
    print ("列表现在为 : ", list1)
    
    # 输出结果:
    列表现在为 :  ['Google', 'Runoob', 'Baidu']
    列表现在为 :  ['Google', 'Runoob']
    list.remove()
    #1. 描述:
    clear() 函数用于清空列表,类似于 del a[:]
    
    #2. 语法:
    list.clear()
    
    #3. 参数:
    #4. 返回值:
    #5. 实例:
    list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
    list1.clear()
    print ("列表清空后 : ", list1)
    
    # 输出结果:
    列表清空后 :  []
    list.clear()
    # del lst[index] -- 指定索引进行删除
    
    # del lst[beg:end:step] -- 切片删除
    del 语句

    3. 修改

    # 索引修改 -- lst[index] = 目标对象
    
    # 切片修改 -- lst[start:end:step] = 目标对象

    4. 查询

    for循环遍历列表:

    # 只能拿到元素
    for el in list:
        print(el)
    
    # 即拿索引又拿元素
    for i in range(len(list)):
        print(list[i])

    5. 其他常用操作

      方法:

    #1. 描述:
    count() 方法用于统计某个元素在列表中出现的次数。
    
    #2. 语法:
    list.count(obj)
    
    #3. 参数:
    obj -- 列表中统计的对象。
    
    #4. 返回值:
    返回元素在列表中出现的次数。
    
    #5. 实例:
    aList = [123, 'Google', 'Runoob', 'Taobao', 123];
    
    print ("123 元素个数 : ", aList.count(123))
    print ("Runoob 元素个数 : ", aList.count('Runoob'))
    
    # 输出结果如下:
    123 元素个数 :  2
    Runoob 元素个数 :  1
    list.count(obj)
    #1. 描述:
    index() 函数用于从列表中找出某个值第一个匹配项的索引位置。
    
    #2. 语法:
    list.index(obj)
    
    #3. 参数:
    obj -- 查找的对象。
    
    #4. 返回值:
    该方法返回查找对象的索引位置,如果没有找到对象则抛出异常。
    
    #5. 实例:
    list1 = ['Google', 'Runoob', 'Taobao']
    print ('Runoob 索引值为', list1.index('Runoob'))
    print ('Taobao 索引值为', list1.index('Taobao'))
    
    # 输出结果如下:
    Runoob 索引值为 1
    Taobao 索引值为 2
    list.index(obj)
    #1. 描述:
    reverse() 函数用于反向列表中元素。
    
    #2. 语法:
    list.reverse()
    
    #3. 参数:
    #4. 返回值:
    该方法没有返回值,但是会对列表的元素进行反向排序。
    
    #5. 实例:
    list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
    list1.reverse()
    print (list1)
    
    # 输出结果:
    ['Baidu', 'Taobao', 'Runoob', 'Google']
    list.reverse()
    #1. 描述:
    sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
    
    #2. 语法:
    list.sort(cmp=None, key=None, reverse=False)
    
    #3. 参数:
    cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
    
    key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
    
    reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。
    
    #4. 返回值:
    该方法没有返回值,但是会对列表的对象进行排序。
    
    #5. 实例1:
    
    # 列表
    vowels = ['e', 'a', 'u', 'o', 'i']
    # 降序
    vowels.sort(reverse=True)
    # 输出结果
    print ( '降序输出:', vowels )
    
    实例1输出结果如下:
    降序输出: ['u', 'o', 'i', 'e', 'a']
    
    
    #实例2: 通过指定列表中的元素排序来输出列表
    
    # 获取列表的第二个元素
    def takeSecond(elem):
        return elem[1]
    # 列表
    random = [(2, 2), (3, 4), (4, 1), (1, 3)]
    # 指定第二个元素排序
    random.sort(key=takeSecond)
    # 输出类别
    print ('排序列表:', random)
    
    # 以上实例输出结果如下:
    # 排序列表:[(4, 1), (2, 2), (1, 3), (3, 4)]
    list.sort()
    #1. 描述:
    copy() 函数用于复制列表,类似于 a[:]
    注意: 这里的属于浅拷贝
    
    #2. 语法:
    list.copy()
    
    #3. 参数:
    #4. 返回值:
    返回复制后的新列表。
    
    #5. 实例:
    list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
    list2 = list1.copy()
    print ("list2 列表: ", list2)
    
    # 以上实例输出结果如下:
    # list2 列表: ['Google', 'Runoob', 'Taobao', 'Baidu']
    list.copy()

      函数:

    #1. 描述:
    len() 方法返回列表元素个数
    
    #2. 语法:
    len(list)
    
    #3. 参数:
    list -- 要计算元素个数的列表
    
    #4. 返回值:
    返回列表元素个数
    
    #5. 实例:
    list1 = ['Google', 'Runoob', 'Taobao']
    print (len(list1))
    list2=list(range(5)) # 创建一个 0-4 的列表
    print (len(list2))
    # 输出结果:
    # 3
    # 5
    len(list)
    #1. 描述:
    max() 方法返回列表元素中的最大值
    
    #2. 语法:
    max(list)
    
    #3. 参数:
    list -- 要返回最大值的列表
    
    #4. 返回值:
    返回列表元素中的最大值
    max(list)
    #1. 描述
    min() 方法返回列表元素中的最小值
    
    #2. 语法:
    min(list)
    
    #3. 参数:
    list -- 要返回最小值的列表
    
    #4. 返回值:
    返回列表元素中的最小值
    min(list)
    #1. 描述:
    list() 方法用于将元组转换为列表。
    注:元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放在括号中,列表是放于方括号中。
    
    #2. 语法:
    list( seq )
    
    #3. 参数:
    list -- 要转换为列表的元组。
    
    #4. 返回值:
    返回列表。
    list(seq)

     二. 字典(dict)

    #1. 字典的介绍:
    字典(dict)是python中唯一的一个映射类型,它是以{}括起来的键值对组成,在dict中key是唯一的,在保存的时候,根据key来计算出一个内存地址,然后将key-value保存在这个地址中,这种算法被称为hash算法,所以,切记,在dict中存储的key-value中的key必须是可hash的,如果你搞不懂什么是可哈希,暂时可以这样记:可以改变的都是不可哈希的,那么可哈希就意味着不可变。这个是为了能准确的计算内存地址而规定的。
    
    已知的可哈希(不可变)的数据类型: int, str, bool, tuple
    
    不可哈希(可变)的数据类型: list, dict, set
    
    #2. 语法: {key:value1, key2:value2, ...}
    注意: key必须是不可变(可哈希)的, value则没有要求,可以保存任意类型的数据.
    
    #3. 举例说明:
    
    # 合法
    dic = {
        123: 456,
        True: 999,
        "id": 1,
        "name": "sylar",
        "age": 18,
        "stu": ["帅哥", "美女"],
        (1, 2, 3): "麻花藤"
    }
    
    print(dic[123])
    print(dic[True])
    print(dic["id"])
    print(dic["stu"])
    print(dic[(1, 2, 3)])
    
    # 不合法
    dic1 = {[1, 2, 3,]:"周杰伦"}    # list是可变的,不能作为key
    dic2 = {{1:2}:"娃哈哈"}        # dict是可变的,不能作为key
    dic3 = {{1, 2, 3}:"爽歪歪"}        # set是可变的,不能作为key
    
    # dict保存的数据不是按照我们添加进去的顺序保存的,是按照hash表的顺序,而hash表不是连续的,所以dicct不能进行切片工作,它只能通过key来获取dict中的数据.
    字典介绍

    1. 增加

    #dict[key] = value给字典添加一个键值对
    
    #举例说明:
    dic = {}
    dic["name"] = "王力宏"    # 如果dict中没有出现这个key,就会新增一个key-value组合
    dic["age"] = 18
    dict[key] = value
    #描述:
     setdefault() 方法和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值。
    
    #语法:
    dict.setdefault(key, default=None)
    
    #参数:
    key -- 要查找的键
    default -- 若key不存在,则把key:default新增进字典中
    
    #返回值:
    如果key在字典中,返回对应的值.如果不在字典中,则插入key及设置的默认值default,并返回default,default默认值为None.
    
    #举例说明:
    dic = {"周杰伦":"亚洲音乐天王"}
    
    dic,setdefault("王力宏")    # 给字典dic设置一个键值对 "王力宏":None ,返回值是None
    print(dic)    # 结果为: {"周杰伦":"亚洲音乐天王", "王力宏":None}
    
    dic.setdefault("周杰伦", "跳舞")    # 如果dic中已经存在这个key了,那么setdefault不会起作用,返回值是这个key对应的dict中的value值
    print(dic)    # 结果为 {"周杰伦":"亚洲音乐天王", "王力宏":None}
    
    dic.setdefault("刘德华", 18)    # 在dict中新增键值对 "刘德华":18 ,返回值是18
    print(dic)    # 结果为{"周杰伦":"亚洲音乐天王", "王力宏":None, "刘德华":18}
    dict.setdefault(key, default=None)

    2. 删除

    dic = {"name":"王乃卉", "age":19", "hobby":"摄影"}
    
    ret = dic.pop("age")    # pop()有返回值,返回被删除的value
    print(ret)    # 结果为: 19
    dict.pop[key]
    dic = {"name":"王乃卉", "age":19", "hobby":"摄影"}
    
    del dic["age"]
    print(dic)    # 结果为: {"name":"王乃卉", "hobby":"摄影"}
    del dict[key]
    dic = {"name":"王乃卉", "age":19", "hobby":"摄影"}
    
    ret = dic.popitem()    # 随机删除,返回一个元组(删除的key,删除的value), 可以结构: k, v = dic.popitem()
    print(ret)    # 结果为: ("hobby":"摄影")
    dict.popitem()
    # dict.clear()用于 清空字典
    dict.clear()

    3. 修改

    dict[key] = value给字典增加一个键值对
    dict[key] = value
    dic = {"name":"王乃卉", "age":19", "hobby":"摄影"}
    dic1 = {"name":"王力宏", "age":37", "hobby":"音乐"}
    
    dic.update(dic1)    # 把dic1中的内容更新到dic中.如果key重名,则修改替换.如果不存在key,则新增.
    dict.update()

    4. 查询

    dic = {"name":"王乃卉", "age":19", "hobby":"摄影"}
    
    print(dic["name"])    # 结果: "王乃卉"
    print(dic["gender"])    # 如果key不存在则报错
    dict[key]
    dic = {"name":"王乃卉", "age":19", "hobby":"摄影"}
    
    print(dic.get("name"))    # 结果为: "王乃卉"
    print(dic.get("gender"))    # key不存在返回None
    print(dic.get("gender", ""))    # key不存在时,第二个参数可以指定返回内容,原dict的内容不变,此打印结果为: 女
    dict.get(key)
    dic = {"name":"王乃卉", "age":19", "hobby":"摄影"}
    
    print(dic.setdefault("gender"))    # key不存在时会为dict新增一个键值对 "gender":None ,此时打印结果为: None
    dict.setdefault(key)
    dic = {"name": "王乃卉", "age": 19, "hobby": "摄影"}
    
    # 获取到所有key
    for k in dic:
        print(k)
    
    # 获取到所有key
    for k in dic.keys():
        print(k)
    
    # 获取到所有values
    for v in dic.values():
        print(v)
    
    # 获取到所有key和values
    for k, v in dic.items():
        print(k, v)
    for循环遍历字典

    5. 其他常用操作

    描述:
    copy() 函数返回一个字典的浅复制
    
    语法:
    dict.copy()
    
    参数:
    无
    
    返回值:
    返回一个字典的浅复制
    dict.copy()
    #描述:
    fromkeys() 函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值
    
    #语法:
    dict.fromkeys(seq[, value])
    
    #参数:
    seq -- 字典键值列表
    value -- 可选参数, 设置键序列(seq)的值
    
    #返回值:
    该方法返回列表
    dict.fromkeys(seq[, value])
    #描述:
     in 操作符用于判断键是否存在于字典中,如果键在字典 dict 里返回 true,否则返回 false。
    而 not in 操作符刚好相反,如果键在字典 dict 里返回 false,否则返回 true。
    
    #语法:
    key in dict
    
    #参数:
    key -- 要在字典中查找的键。
    
    #返回值:
    如果键在字典里返回true,否则返回false。
    key in dict
    # 字典的嵌套
    dic1 = {
        "name": "汪峰",
        "age": 43,
        "wife": {
            "name": '章子怡',
            "age": 39
        },
        "children": ['第一个孩子', '第二个孩子'],
        "desc": '峰哥不会告我吧,没关系的'
        }
    
    print(dic1.get("wife").get("name"))
    print(dic1.get("children"))
    print(dic1.get("children")[1]        
    字典的嵌套

    三. 集合(set)

    #set(集合)是python的一个基本数据类型,一般不是很常用,set中的元素是不重复的,无序的,里面的元素必须是可hash的(int,tuple,bool),我们可以这样来记,set就是dict类型的数据但是不保存value,只保存key,set也用{}表示。
    
    #注意:set集合中的元素必须是可hash的,但是set本身是不可hash,set是可变的。
    
    #创建一个空字典和一个空集合:
    d = {}    # 创建一个空字典
    s = set()    # 创建一个空集合
    集合介绍

    1. 增加

    #描述:
    add() 方法用于给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。
    
    #语法:
    set.add(elmnt)
    
    #参数:
    elmnt -- 必需,要添加的元素。
    
    #返回值:
    add()
    #描述:
    update() 方法用于修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略。
    
    #语法:
    set.update(set)
    
    #参数:
    set -- 必需,可以是元素或集合
    
    #返回值:
    #举例说明:
    x = {"apple", "banana", "cherry"}
    y = {"google", "runoob", "apple"}
    x.update(y) 
    print(x)
    
    # 执行结果:
    # {'banana', 'apple', 'google', 'runoob', 'cherry'}
    update(迭代更新)

    2. 删除

    #描述:
    pop() 方法用于随机移除一个元素。
    
    #语法:
    set.pop()
    
    #参数:
    #返回值:
    返回移除的元素。
    
    #举例说明:
    fruits = {"apple", "banana", "cherry"}
    fruits.pop() 
    print(fruits)
    
    # 执行结果:
    # {'apple', 'banana'}
    pop()
    #描述:
    remove() 方法用于移除集合中的指定元素。
    该方法不同于 discard() 方法,因为 remove() 方法在移除一个不存在的元素时会发生错误,而 discard() 方法不会。
    
    #语法:
    set.remove(item)
    
    #参数:
    item -- 要移除的元素
    
    #返回值:
    返回移除的元素。
    
    #举例说明:
    fruits = {"apple", "banana", "cherry"}
    fruits.remove("banana") 
    print(fruits)
    
    # 执行结果:
    # {'cherry', 'apple'}
    remove()
    #描述:
    clear() 方法用于移除集合中的所有元素。
    
    #语法:
    set.clear()
    
    #参数:
    #返回值:
    clear()

    3. 修改

    集合中的数据没有索引. 也没有办法去定位一个元素. 所以没有办法进行直接修改,我们可以采用先删除后添加的方式来完成修改操作,具体如下示例:

    s = {"刘嘉玲", '关之琳', "王祖贤","张曼玉", "李若彤"}
    
    # 把刘嘉玲改成赵本山
    s.remove("刘嘉玲")
    s.add("赵本山")
    
    print(s)

    4. 查询

    set是一个可迭代对象. 所以可以进行for循环遍历查询:

    for el in s:
        print(el)

    5. 其他操作

    #copy() 方法用于拷贝一个集合.
    
    #举例说明:
    fruits = {"apple", "banana", "cherry"}
    x = fruits.copy()
    print(x)
    
    # 执行结果:
    # {'cherry', 'banana', 'apple'}
    copy()
    #描述:
    difference() 方法用于返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中。
    
    #语法:
    set.difference(set)
    
    #参数:
    set -- 必需,用于计算差集的集合
    
    #返回值:
    返回一个新的集合。
    
    #举例说明:
    x = {"apple", "banana", "cherry"}
    y = {"google", "microsoft", "apple"}
    z = x.difference(y) 
    print(z)
    
    # 执行结果:
    # {'cherry', 'banana'}
    difference()
    #描述:
    discard() 方法用于移除指定的集合元素。
    该方法不同于 remove() 方法,因为 remove() 方法在移除一个不存在的元素时会发生错误,而 discard() 方法不会。
    
    #语法:
    set.discard(value)
    
    #参数:
    value -- 必需,要移除的元素
    
    #返回值:
    #举例说明:
    fruits = {"apple", "banana", "cherry"}
    fruits.discard("banana") 
    print(fruits)
    
    # 执行结果:
    # {'cherry', 'apple'}
    discard()
    #描述:
    intersection() 方法用于返回两个或更多集合中都包含的元素,即交集。
    
    #语法:
    set.intersection(set1, set2 ... etc)
    
    #参数:
    set1 -- 必需,要查找相同元素的集合
    set2 -- 可选,其他要查找相同元素的集合,可以多个,多个使用逗号 , 隔开
    
    #返回值:
    返回一个新的集合
    
    #举例说明:
    x = {"apple", "banana", "cherry"}
    y = {"google", "runoob", "apple"}
    z = x.intersection(y) 
    print(z)
    
    # 执行结果:
    # {'apple'}
    
    #计算多个集合的交集:
    x = {"a", "b", "c"}
    y = {"c", "d", "e"}
    z = {"f", "g", "c"}
    result = x.intersection(y, z)
    print(result)
    # 执行结果:
    # {'c'}
    intersection()
    #描述:
    isdisjoint() 方法用于判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
    
    #语法:
    set.isdisjoint(set)
    
    #参数:
    set -- 必需,要比较的集合
    
    #返回值:
    返回布尔值,如果不包含返回 True,否则返回 False。
    
    #举例说明:
    x = {"apple", "banana", "cherry"}
    y = {"google", "runoob", "facebook"}
    z = x.isdisjoint(y) 
    print(z)
    
    # 执行结果:
    # True
    set.isdisjoint()
    #描述:
    issubset() 方法用于判断集合的所有元素是否都包含在指定集合中,如果是则返回 True,否则返回 False。
    
    #语法:
    set.issubset(set)
    
    #参数:
    set -- 必需,要比查找的集合
    
    #返回值:
    返回布尔值,如果都包含返回 True,否则返回 False。
    
    #举例说明:
    x = {"a", "b", "c"}
    y = {"f", "e", "d", "c", "b", "a"}
    z = x.issubset(y) 
    print(z)
    
    # 执行结果:
    # True
    issubset()
    #描述:
    issuperset() 方法用于判断指定集合的所有元素是否都包含在原始的集合中,如果是则返回 True,否则返回 False。
    
    #语法:
    set.issuperset(set)
    
    #参数:
    set -- 必需,要比查找的集合
    
    #返回值:
    返回布尔值,如果都包含返回 True,否则返回 False。
    
    #举例说明:
    x = {"f", "e", "d", "c", "b", "a"}
    y = {"a", "b", "c"}
    z = x.issuperset(y) 
    print(z)
    
    # 执行结果:
    # True
    
    #如果没有全部包含返回 False:
    x = {"f", "e", "d", "c", "b"}
    y = {"a", "b", "c"}
    z = x.issuperset(y) 
    print(z)
    
    # 执行结果:
    # False
    issuperset()
    #描述:
    symmetric_difference() 方法返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。
    
    #语法:
    set.symmetric_difference(set)
    
    #参数:
    set -- 集合
    
    #返回值:
    返回一个新的集合。
    
    #举例说明:
    x = {"apple", "banana", "cherry"}
    y = {"google", "runoob", "apple"}
    z = x.symmetric_difference(y) 
    print(z)
    
    # 执行结果:
    # {'google', 'cherry', 'banana', 'runoob'}
    symmetric_difference()
    #描述:
    symmetric_difference_update() 方法移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
    
    #语法:
    set.symmetric_difference_update(set)
    
    #参数:
    set -- 要检测的集合
    
    #返回值:
    #举例说明:
    x = {"apple", "banana", "cherry"}
    y = {"google", "runoob", "apple"}
    x.symmetric_difference_update(y) 
    print(x)
    
    # 执行结果:
    {'google', 'cherry', 'banana', 'runoob'}
    symmetric_difference_update()
    #描述:
    union() 方法返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。
    
    #语法:
    set.union(set1, set2...)
    
    #参数:
    set1 -- 必需,合并的目标集合
    set2 -- 可选,其他要合并的集合,可以多个,多个使用逗号 , 隔开。
    
    #返回值:
    返回一个新集合。
    
    #举例说明:
    x = {"apple", "banana", "cherry"}
    y = {"google", "runoob", "apple"}
    z = x.union(y) 
    print(z)
    
    # 执行结果:
    # {'cherry', 'runoob', 'google', 'banana', 'apple'}
    
    #合并多个集合:
    x = {"a", "b", "c"}
    y = {"f", "d", "a"}
    z = {"c", "d", "e"}
    result = x.union(y, z) 
    print(result)
    
    # 执行结果:
    # {'c', 'd', 'f', 'e', 'b', 'a'}
    union()
  • 相关阅读:
    任正非:所有公司都是管理第一,技术第二(没有一流管理,领先的技术就会退化;有一流管理,即使技术二流也会进步)
    QuickReport的OnNeedData的触发情况
    Quickreport不用数据字段,如何实现多页打印?
    我要继续做开发吗(对18个问题,全部都是肯定!)
    一台主机,至多可以开启多少个线程
    BenchmarkDotNet
    开发资源
    WebSocket
    TCP
    “在什么时候学习编程才合适?”
  • 原文地址:https://www.cnblogs.com/haitaoli/p/9864606.html
Copyright © 2011-2022 走看看