zoukankan      html  css  js  c++  java
  • 容器数据类型补充

    tu =(1,2,3)

    tu1=tu+(1,2)

    print(tu1)

    tu=(1,)

    print(type(tu))

    1.str

    s="saw dxc"

    s=s.capitalize()第一个单词首字母大写

    s=s.title()每个单词的首字母大写

    s=s.swapcase()全部大写

    s=s.center(20,"*")居中 填充

    s=s.find("x")通过元素查找索引

    s="_".join(s)拼接还可以将列表变成字符串

    s1=s*2

    print(s is s1)

    s2=s+"123"

    print(s2) 字符串的加和乘都产生新的地址

    2list

    print(list('12344'))列表的定义

    lst=[1,2,3,4,5,12,7]

    print(lst.index(4))通过元素查找索引

    lst.sort()

    lst.reverse()人工降序

    print(lst)

    lst.sort(reverse=True)一行实现降序

    print(lst)

    lst1=lst[::-1]不修改源数据进行翻转

    print(lst1)

    print(lst)

    lst1=lst+[1,2,3]列表进行加运算时开辟新空间

    print(lst)

    lst=lst*2 列表乘运算时,数据是公用的

    print(lst)

    print(lst[0] is lst[7])

    # 面试题:

    lst = [1,[]] * 5

    print(lst)

    lst[1].append(6)

    print(lst)

    列表在进行乘法的时候,元素是共用的

    [1, [], 1, [], 1, [], 1, [], 1, []]

    [1, [6], 1, [6], 1, [6], 1, [6], 1, [6]]

    3元组tuple

    tu =(12,3,4)

    tu1 =(12,3,4)+(1,2)

    print(tu is tu1)

    tu = (1,[]) * 3

    print(tu)

    tu[-1].append(10)

    print(tu)

    tu = (1, []) * 3

    print(tu)

    tu[-1].append(10)乘法运算时,数据是公用的

    print(tu)

    dic = {"key":1,"key1":2,"key2":4,"key3":1}

    print(dic.popitem()) # 随机删除 python3.6版删除最后一个键值对

    # popitem返回的是被删除的键值对

    print(dic)

    面试题:

    dic = {}

    dic.fromkeys("abc",[]) # 批量创建键值对 "a":[],"b":[],"c":[]

    print(dic)#只是创建并没有把值写入字典

    dic = {}

    dic = dic.fromkeys("abc",[])

    print(dic)

    dic["b"] = 11

    dic["a"].append(10)

    print(dic)

    fromkeys 第一个参数必须是可迭代对象,会将可迭代对象进行迭代,成为字典的键.第二个参数是值(这个值是共用的)

    fromkeys 共用的值是可变数据类型就会有坑,不可变数据类型就没事

    基础数据类型总结:

    可变,不可变,有序,无序

    # 1.可变:
    #     list
    #     dict
    #     set
    # 2.不可变:
    #     int
    #     str
    #     bool
    #     tuple
    # 3.有序:
    #     list
    #     tuple
    #     str
    # 4.无序:
    #     dict
    #     set
    

    取值方式:

    # 1.索引
    #     list
    #     tuple
    #     str
    #
    # 2.键
    #     dict
    #
    # 3.直接
    #     int
    #     bool
    #     set
    

    数据类型转换

    str -- int

    int -- str

    str -- bool

    bool -- str

    int -- bool

    bool -- int

    list -- tuple

    lst = [1,23,5,4]

    print(tuple(lst))

    tuple -- list

    tu = (1,23,5,4)

    print(list(tu))

    list -- set

    lst = [1,23,12,31,23]

    print(set(lst))

    set -- list

    tuple -- set

    tu = (1,2,3,4,5)

    print(set(tu))

    set -- tuple

    重要: *****

    # list -- str
    # lst = ["1","2","3"]
    # print("".join(lst))
    
    # str -- list
    # s = "alex wusir 太白"
    # print(s.split())
    

    目前字典转换,自己实现方法

    重点:

    # find
    # join
    # 列表乘法
    # 元组(1,)
    # 元组乘法
    # list -- str
    # str -- list
    

    有序的数据类型进行了乘法运算和加法运算

    死循环

    lst = [1,2,3]

    for i in lst:

    lst.append(4)

    print(lst)

    lst = [11,22,33,44]

    for i in lst:

    lst.remove(i)

    print(lst)

    for i in lst:

    del lst[-1]

    print(lst)

    lst = [11,22,33,44]

    for i in lst:

    lst = [11,22,33,44]

    for i in range(len(lst)):

    del lst[-1]

    print(lst)

    for i in range(len(lst)):

    lst.pop()

    print(lst)

    lst = [11,22,33,44]

    lst1 = lst[:]

    for i in lst1:

    lst.remove(i)

    print(lst)

    使用for循环清空列表元素内容

    1.从后向前删除, 2.创建一个新的容器,循环新的容器删除旧的容器内容

    面试题:

    # lst = [1,[2]]
    # lst[1] = lst
    # print(lst)
    # 答案: [1, [...]]
    

    字典和集合:

    dic = {"key":1,"key1":2}

    for i in dic:

    if i == "key1":

    dic[i] = dic[i] + 8 # dic[i] = 10

    else:

    print("没有这个键!")

    print(dic)

    字典和集合在遍历(循环)时不能修改原来的大小(字典的长度),可以进行修改值

    s = {1,2,3,4,5,6}

    for i in s:

    二次编码

    ascii码:

    支持:英文,数字,符号 1字节

    不支持:中文

    GBK(国标):

    支持:英文,数字,符号 -- ascii 1字节

    支持:中文 2字节

    Unicode(万国码):

    支持:英文,数字,符号 -- ascii 4字节

    支持:欧洲 4字节

    支持:亚洲 4字节

    utf-8:

    支持:英文,数字,符号 -- ascii 1字节

    支持:欧洲 2字节

    支持:亚洲 3字节

    00001101 = 1字节

    字节:存储和传输

    xa1112a

    010101010

    今天是个好日子

    s = "今天" # b'xe4xbbx8axe5xa4xa9'

    s1 = s.encode("utf-8") # 编码

    print(s1)

    a = "meet"

    s1 = a.encode("utf-8") # 编码

    print(s1)

    a = "meet"

    a = "今天好"

    s1 = a.encode("gbk") # 编码

    print(s1)

    print(b"meet") # 只有字母才能这么搞

    s2 = s1.decode("utf-8") # 解码

    print(s2)

    必会

    # python3: 默认编码unicode
    # pyhton2:默认编码ascii
    # python2不支持中文
    

    重要:

    # encode()  # 编码
    # decode()  # 解码
    # 用什么编码就要用什么解码
    # 网络传输一定是字节
  • 相关阅读:
    无编译/无服务器,实现浏览器的 CommonJS 模块化
    程序员如何在工作中自我增值
    软件架构被高估,清晰简单的设计被低估
    为什么会产生微服务架构?
    版本管理Git和SVN的介绍及其优缺点
    13.递归第一次
    12.二叉树的序遍历
    12.二叉树的序遍历
    10.十进制转m进制
    10.十进制转m进制
  • 原文地址:https://www.cnblogs.com/python25/p/11402506.html
Copyright © 2011-2022 走看看