• Python自学,Day2Python基础


    本节内容

      1.sys模块

      2.列表、元组操作

      3.字符串操作

      4.字典操作

    1、模块初识                                              

    Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎任何功能都有相应的Python库支持(看着老NB了哈......)

    • sys  系统模块
    1 import sys
    2 print(sys.path)

    含义:打印系统环境变量列表

    • os  系统模块
    1 import os
    2 
    3 cmd_res=os.system("df -h")#打印到屏幕上,不保存结果
    4 
    5 print("打印结果:",cmd_res)#0代表命令执行的结果为成功

    ps:没有搞明白这个具体有什么用.....

    调用外部非标准的模块

    规则:

    1、调用的非标准模块时,先为当前路径变量寻找,如果找不到则从全局变量中寻找;

    2、如果从当前路径变量和全局环境变量中均无该变量,则程序会提示:No module named 'userloging'  #'userloging'为调用的外部变量

    3、解决方案:

    1)、将需调用的模块copy至当前环境变量中

    2)、将需调用的模块copy至全局环境变量中

    3)、程序调用时,声明调用模块的路径

    2. what is .pyc?                                            

    简述Python的运行过程

    PyCodeObject和pyc文件:PyCodeObject则是Python编译器真正编译成的结果;pyc是预编译后的字节码文件;

    当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。

    当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。

    所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。

    此处跳过一堆的数据和数据运算相关的内容。。。

    3、列表、元组操作                                           

    列表的含义与数组相同;元组为只读数组,不可更改。

    (1)、定义列表

    names=["shang","quan","xin","ace"]

    数组角标从左至右依次为0、1、2...

    (2)、获取列表中元素

      1)、单个元素

    1 names=["shang","quan","xin","ace"]
    2 
    3 print(names[1])

    输出结果:quan

      当取元素较多,直接取最后一个元素时

    1 names=["shang","quan","xin","ace"]
    2 print(names[-1])

    输出结果:ace  备注:-1代表从最后一个元素开始读取

      2)、多个元素

    1 names=["shang","quan","xin","ace"]
    2 print(names[1],names[3])

    输出结果:quan ace

      3)、连续多个元素(切片)

    1 names=["shang","quan","xin","ace"]
    2 print(names[1:3])

    输出结果:['quan', 'xin']  遵循左闭右开的原则

      从第一位开始获取

    1 names=["shang","quan","xin","ace"]
    2 print(names[0:1])

    输出结果:['shang']  备注:0可以不写,结果相同

    1 names=["shang","quan","xin","ace"]
    2 print(names[:1])

      倒叙切片

    1 names=["shang","quan","xin","ace"]
    2 print(names[-3:-1])

    输出结果:['quan', 'xin']  备注:因左闭右开规则,-1位的元素并无法取到

      可以取到最后一位元素

    1 names=["shang","quan","xin","ace"]
    2 print(names[-3:])

    输出结果:

    ['quan', 'xin', 'ace']  

    (3)、添加元素

      1)、最后一位添加(append)

    1 names=["shang","quan","xin","ace"]
    2 names.append("pm")
    3 print(names)

    输出结果:['shang', 'quan', 'xin', 'ace', 'pm']

      2)、任意位置添加(insert)

    1 names=["shang","quan","xin","ace"]
    2 names.insert(1,"pm")
    3 print(names)

    输出结果:['shang', 'pm', 'quan', 'xin', 'ace']  其中“1”代表需要插入的位置

    (4)、改元素

      改任意位置元素

    1 names=["shang","quan","xin","ace"]
    2 names[3]="Ace"
    3 print(names)

    输出结果:['shang', 'quan', 'xin', 'Ace']  直接改变数组中参数的值

    (5)、删除

      1)、del 删除

    1 names=["shang","quan","xin","ace"]
    2 del names[3]
    3 print(names)

    输出结果:['shang', 'quan', 'xin']

      2)、remove删除

    1 names=["shang","quan","xin","ace"]
    2 names.remove("xin")
    3 print(names)

    输出结果:['shang', 'quan', 'ace']

      3)、pop删除

    1 names=["shang","quan","xin","ace"]
    2 names.pop()
    3 print(names)

    输出结果:['shang', 'xin', 'ace']  不输入角标时,默认删除最后一个元素

      设置角标时,则同del

    1 names=["shang","quan","xin","ace"]
    2 names.pop(1)
    3 print(names)

    输出结果:['shang', 'xin', 'ace']

    (6)、获取元素角标  index

    1 names=["shang","quan","xin","ace"]
    2 index=names.index("xin")
    3 print(index)

    输出结果:2  使用index时获取元素角标

    (7)、统计数组中元素的个数  count

    1 names=["shang","quan","xin","ace","xin"]
    2 count=names.count("xin")
    3 print(count)

    输出结果:2  使用count进行统计

    (8)、清空数组  clear

    1 names=["shang","quan","xin","ace","xin"]
    2 names.clear()
    3 print(names)

    输出结果:[]

    (9)、反转元素顺序  reverse

    1 names=["shang","quan","xin","ace","xin"]
    2 names.reverse()
    3 print(names)

    输出结果:['xin', 'ace', 'xin', 'quan', 'shang']

    (10)、排序  sort

    1 names=["shang","quan","xin","ace","xin"]
    2 names.sort()
    3 print(names)

     输出结果:['ace', 'quan', 'shang', 'xin', 'xin']

    备注:排序优先级为:特殊符号>数字>大写字母>小写字母(阿斯玛值排序)

    (11)、合并  extend

    names=["shang","quan","xin","ace","xin"]
    names2=["gome"]
    names.extend(names2)
    print(names)

    输出结果:['shang', 'quan', 'xin', 'ace', 'xin', 'gome']

    备注:name2依然存在

    (12)、删除数组

     1 del names2 

    (13)、复制 copy

       1)、浅copy

    1 names=["shang","quan","xin",["pm","python","pycharm"],"ace","xin"]
    2 names2=names.copy()
    3 print(names)
    4 print(names2)

    输出结果:

    ['shang', 'quan', 'xin', ['pm', 'python', 'pycharm'], 'ace', 'xin']
    ['shang', 'quan', 'xin', ['pm', 'python', 'pycharm'], 'ace', 'xin']

      修改names2中元素

    1 names=["shang","quan","xin",["pm","python","pycharm"],"ace","xin"]
    2 names2=names.copy()
    3 names2[2]="XIN"
    4 print(names)
    5 print(names2)

    输出结果:

    ['shang', 'quan', 'xin', ['pm', 'python', 'pycharm'], 'ace', 'xin']
    ['shang', 'quan', 'XIN', ['pm', 'python', 'pycharm'], 'ace', 'xin']

      修改name2数组中数组元素

    1 names=["shang","quan","xin",["pm","python","pycharm"],"ace","xin"]
    2 names2=names.copy()
    3 names2[3][0]="PM"
    4 print(names)
    5 print(names2)

    输出结果:

    ['shang', 'quan', 'xin', ['PM', 'python', 'pycharm'], 'ace', 'xin']
    ['shang', 'quan', 'xin', ['PM', 'python', 'pycharm'], 'ace', 'xin']

    备注:copy只复制了第一层元素,第二层元素则时复制的空间内存地址,当空间内容修改,原时的数组names也修改

      数组直接赋值

    1 names=["shang","quan","xin",["pm","python","pycharm"],"ace","xin"]
    2 names2=names
    3 names[2]=""
    4 names2[3][0]="PM"
    5 print(names)
    6 print(names2)

    输出结果:

    ['shang', 'quan', '鑫', ['PM', 'python', 'pycharm'], 'ace', 'xin']
    ['shang', 'quan', '鑫', ['PM', 'python', 'pycharm'], 'ace', 'xin']

    备注 :数组赋值,只是数组的内存地址赋值,两个数组指向的是同一个内存地址

      其他写法

     1 import copy
     2 
     3 names=["shang","quan",["pm","python","pycharm"],"ace","xin","python"]
     4 names2=copy.copy(names)
     5 names3=names[:]
     6 names4=list(names)
     7 
     8 names[4]=""
     9 names2[2][0]="PM"
    10 names3[2][1]="PYTHON"
    11 names4[2][2]="PYCHARM"
    12 print(names)
    13 print(names2)
    14 print(names3)
    15 print(names4)

    输出结果:

    ['shang', 'quan', ['PM', 'PYTHON', 'PYCHARM'], 'ace', '鑫', 'python']
    ['shang', 'quan', ['PM', 'PYTHON', 'PYCHARM'], 'ace', 'xin', 'python']
    ['shang', 'quan', ['PM', 'PYTHON', 'PYCHARM'], 'ace', 'xin', 'python']
    ['shang', 'quan', ['PM', 'PYTHON', 'PYCHARM'], 'ace', 'xin', 'python']

    备注:引用copy模块,name2是用copy函数下的浅copy,name3是用完全切片,name4是使用工厂函数

      2)、深copy

    1 import copy
    2 
    3 names=["shang","quan","xin",["pm","python","pycharm"],"ace","xin"]
    4 names2=copy.deepcopy(names)
    5 names[2]=""
    6 names2[3][0]="PM"
    7 print(names)
    8 print(names2)

    输出结果:

    ['shang', 'quan', '鑫', ['pm', 'python', 'pycharm'], 'ace', 'xin']
    ['shang', 'quan', 'xin', ['PM', 'python', 'pycharm'], 'ace', 'xin']

    备注:引用copy模块,使用copy.deepcopy(),两个独立的数组元素

      3)、列表循环打印

    1 names=["shang","quan","xin",["pm","python","pycharm"],"ace","xin"]
    2 names2=copy.deepcopy(names)
    3 names[2]=""
    4 names2[3][0]="PM"
    5 print(names)
    6 print(names2)
    7 
    8 for i in names2:
    9     print(i)

    输出结果:

    ['shang', 'quan', '鑫', ['pm', 'python', 'pycharm'], 'ace', 'xin']
    ['shang', 'quan', 'xin', ['PM', 'python', 'pycharm'], 'ace', 'xin']
    shang
    quan
    xin
    ['PM', 'python', 'pycharm']
    ace
    xin

    备注:循环打印,只需打印索引角标即可,ps,如此简单.....

    (14)、定义元组

    1 names=('shang','quan','xin')
    2 print(names)

    输出:('shang', 'quan', 'xin')

    备注:元素不可更改,所以无可编辑功能

    程序练习 

    请闭眼写出以下程序。

    程序:购物车程序

    需求:

    1. 启动程序后,让用户输入工资,然后打印商品列表
    2. 允许用户根据商品编号购买商品
    3. 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 
    4. 可随时退出,退出时,打印已购买商品和余额

     

     1 product_list=[
     2     ('iphone',5800),
     3     ('mac pro',12000),
     4     ('starbucks',37),
     5     ('python',10000),
     6     ('book',45),
     7     ('apple',6),
     8     ('bike',800)
     9 ]
    10 product_neeeded=[]
    11 while True:
    12     salary = input("Input your salary:")
    13     if salary.isdigit():#判断是否是数字
    14         salary=int(salary)
    15         break
    16     else:
    17         print("Please input the number!")
    18 while True:
    19     for item in product_list:
    20         print(product_list.index(item), item)
    21     shopping=input("Input the product number of you need: ")
    22     if shopping.isdigit():
    23         shopping=int(shopping)
    24         if shopping >=0 and shopping<len(product_list):
    25             price=product_list[shopping][1]
    26             if price<=salary:
    27                 salary-=price
    28                 product_neeeded.append(product_list[shopping])
    29                 for added in product_neeeded:
    30                     print(added)
    31                 print("remind banlance:",salary)
    32                 shopping_reslut=input("do you want continue? Y/N:")
    33                 if shopping_reslut=="Y":
    34                     continue
    35                 else:
    36                     break
    37             else:
    38                 print("the salary is not enough!remind banlance:",salary)
    39                 shopping_reslut = input("do you want continue? Y/N:")
    40                 if shopping_reslut == "Y":
    41                     continue
    42                 else:
    43                     break
    44         else:
    45             print("Please input the right number of product!")
    46     else:
    47         print("Please input the right number of product!")
    48 print("------------shopping_list------------")
    49 for added in product_neeeded:
    50     print(added)
    51 print("remind banlance:", salary)
    View Code

    备注:第一个自己码的代码,如有不妥的地方,欢迎大神开喷~(心境跟第一次做C课程设计一样儿一样儿的)

     4、字符串操作 string                                            

    • capitalize  首字母大写
    1 name="ace shang"
    2 print(name.capitalize())

    输出结果:Ace shang

    • count  统计个数
    1 name="ace shang"
    2 print(name.count("a"))

    输出结果:2  统计string中a的个数

    • center  将输入的字符串剧中
    1 name="ace shang"
    2 print(name.center(50,"-"))

    输出结果:--------------------ace shang---------------------  备注:输出50个字符,不足则以“-”补充,并将name居中

    • endswith  校验字符串结尾
    1 name="aceshang@qq.com"
    2 print(name.endswith(".com"))

    输出结果:True  可以用于校验输入内容格式是否满足要求,例如邮箱结尾

    • expandtabs  将\t转换成要求的空格数输出
    1 name="ace\tshang@qq.com"
    2 print(name.expandtabs(3))

    输出结果:ace   shang@qq.com

    • find   查询输入项在字符串中位置
    1 name="aceshang@qq.com"
    2 print(name.find("a"))

    输出结果:0

    1 name="aceshang@qq.com"
    2 print(name.find("p"))

    输出结果:-1  不存在时,默认-1

    1 name="aceshang@qq.com"
    2 print(name.find("ace"))

    输出结果:0  若输入项是一串,按第一个字符查询,

    • format  构造格式
    1 name="my name is {} and my age is {}"
    2 print(name.format("ace",29))

    输出结果:my name is ace and my age is 29

      角标定义位置

    1 name="my name is {0} and my age is {1}"
    2 print(name.format("ace",29))

    输出结果:my name is ace and my age is 29

      按定义的角标与输入项对应

    1 name="my name is {1} and my age is {0}"
    2 print(name.format("ace",29))

    输出结果:my name is 29 and my age is ace

      参数定义位置

    1 name="my name is {name} and my age is {age}"
    2 print(name.format(name="ace",age=29))

    输出结果:my name is ace and my age is 29

    • format_map  字典形式构造格式
    1 name="my name is {name} and my age is {age}"
    2 print(name.format_map({'name':'ace','age':30}))

    输出结果:my name is ace and my age is 30  数据字典:{'name':'ace','age':30}

    • index  查询索引值
    1 name="my name is {name} and my age is {age}"
    2 print(name.index("m"))

    输出结果:0

    • isalnum  是否是阿拉伯数字或者英文字母
    1 name="abc1A"
    2 print(name.isalnum())

    输出结果:True

      如果有特殊字符,则为False

    1 name="abc1A$#"
    2 print(name.isalnum())

    输出结果:False

    • isalpha  是否是纯英文字符
    1 name="abcQ"
    2 print(name.isalpha())

    输出结果:True

    • isdecimal  是否是十进制
    1 name="1222"
    2 print(name.isdecimal())

    输出结果:True

    • isdigit  是否是整数
    1 name="12"
    2 print(name.isdigit())

    输出结果:True

    • isidentifier  判读是否是合法的标示符
    1 name="ab12"
    2 print(name.isidentifier())

    输出结果:True  备注:有空格、特殊字符为不合法

    • islower  是否是小写
    • isupper  是否是大些
    • join  链接
    1 name=["a","b","c"]
    2 print("|".join(name))

    输出结果:a|b|c  用指定符号将字符串拼接

    • ljust  左对其
    • rjust  右对其
    1 name="my name is ace"
    2 print(name.ljust(50,"*"))
    3 print(name.rjust(50,"-"))

    输出结果:

    my name is ace************************************   备注:总长度50,不足用定义字符补充 
    ------------------------------------my name is ace

    • lower  变为小写
    • upper  变为大些
    1 name="My Name Is Ace"
    2 print(name.lower())
    3 print(name.upper())

    输出结果:

    my name is ace
    MY NAME IS ACE

    • lstrip  去掉左边的空格和换行(\n)
    • rstrip  去掉右边的空格和换行
    • strip  去调两边的空格和换行
     1 name="     My Name Is Ace\n"
     2 print(name.lstrip())
     3 print(name.rstrip())
     4 print(name.strip())
     5 
     6 #输出结果
     7 My Name Is Ace
     8 
     9      My Name Is Ace
    10 My Name Is Ace
    • maketrans  作字符转换编码
    • translate  字符变换
    1 intab="abcdefghijklmn"
    2 outtab="!@#$%^&*()_+QW"
    3 incode=str.maketrans(intab,outtab)
    4 print("my name is ace".translate(incode))
    5 
    6 #输出结果
    7 Qy W!Q% (s !#%

    备注:先用maketrans编码,然后使用translate进行字符转换

    • replace  替换
    1 name='Ace Angle'
    2 print(name.replace('A','a',1))#将A替换成a,替换个数为1个
    3 
    4 #输出结果
    5 ace Angle
    • rfind  查询最右一位指定内容的角标
    1 name='Ace Angle'
    2 print(name.rfind('e'))
    3 
    4 #输出结果
    5 8   

     备注:最后一个e的角标值

    • split  按照分隔符将字符串分割成数组
    1 1 name='Alce Angle'
    2 2 print(name.split())
    3 3 print(name.split('l'))
    4 4 
    5 5 #输出结果
    6 6 ['Alce', 'Angle']   #默认空格分割 
    7 7 ['A', 'ce Ang', 'e']    #按照'l'进行分割
    • swapcase  大小字母互换
    1 name='Ace Angle'
    2 print(name.swapcase())
    3 
    4 #输出结果
    5 aCE aNGLE
    • title  将每个字符的首字母大写
    1 name='ace angle'
    2 print(name.title())
    3 
    4 #输出结果
    5 Ace Angle

    5、字典操作                                                 

     1 #定义字典
     2 info={
     3     'no101':"Ace Shang",
     4     'no102':"Baobao Feng",
     5     'no103':"Chulan Zhang",
     6     'no104':"Zhenqiu Wang",
     7 }
     8 
     9 #打印资料
    10 print("1:",info) #打印是无序的
    11 
    12 #精确查找,明确知道key值
    13 print("2:",info["no102"]) #当没有改key时,程序报错
    14 
    15 print("3:",info.get('no106'))   #没有该key时,返回none
    16 print("4:",info.get('no103'))   #有该key时,则返回对应的value
    17 
    18 print("5:",'no109' in info)  #判断no109是否在info的字典中
    19 
    20 #修改字典内容
    21 info["no101"]="Ye Wang"
    22 print("6:",info)
    23 
    24 #新增
    25 info["no105"]="Qing Zhuge"
    26 print("7:",info)
    27 
    28 #删除
    29 del info["no104"]
    30 print("8:",info)
    31 
    32 info.pop("no105")
    33 print("9:",info)
    34 
    35 #删除随机项(尽量不用)
    36 info.popitem()
    37 print("10:",info)
    38 
    39 
    40 #输出结果
    41 1: {'no101': 'Ace Shang', 'no102': 'Baobao Feng', 'no103': 'Chulan Zhang', 'no104': 'Zhenqiu Wang'}
    42 2: Baobao Feng
    43 3: None
    44 4: Chulan Zhang
    45 5: False
    46 6: {'no101': 'Ye Wang', 'no102': 'Baobao Feng', 'no103': 'Chulan Zhang', 'no104': 'Zhenqiu Wang'}
    47 7: {'no101': 'Ye Wang', 'no102': 'Baobao Feng', 'no103': 'Chulan Zhang', 'no104': 'Zhenqiu Wang', 'no105': 'Qing Zhuge'}
    48 8: {'no101': 'Ye Wang', 'no102': 'Baobao Feng', 'no103': 'Chulan Zhang', 'no105': 'Qing Zhuge'}
    49 9: {'no101': 'Ye Wang', 'no102': 'Baobao Feng', 'no103': 'Chulan Zhang'}
    50 10: {'no101': 'Ye Wang', 'no102': 'Baobao Feng'}
    • 多级字典嵌套及操作
     1 #多级嵌套
     2 under_one_person={
     3     "NaDouTong":{
     4         "Chulan Zhang":["不摇碧莲","无形大贱","炁体源流","月下观鸟"],
     5         "Baobao Feng":["社会我宝儿姐","机智一逼","阿威十八式","冈本零点零一"],
     6         "Fangxu Zhao":["公司大Boss","心思细腻","知道宝儿姐身份","威望极高"]
     7     },
     8     "Region":{
     9         "Northeast":["leader:高廉","temporary:二壮(高钰珊)"],
    10         "North China":["leader:徐四","temporary:冯宝宝"],
    11         "East China":["leader:窦乐","temporary:肖自在"],
    12         "Central China":["leader:任菲","temporary:黑管儿"],
    13         "Westeast":["leader:华风","temporary:老孟"],
    14         "Westsouth":["leader:郝意","temporary:王震球"]
    15     },
    16     "8Buff":{
    17         "张怀义":["甲申之乱的罪魁祸首","挂:炁体源流","不摇碧莲的爷爷"],
    18         "无根生":["公认的天下第一搅屎棍","挂:神明灵","全性掌门"],
    19         "风天养":["凉山大觋","挂:拘灵遣将","被王家控制,截胡buff"],
    20         "郑子步":["茅山上清","挂:通天箓","陆瑾的好友"],
    21         "周圣":["武当弟子","挂:风后奇门","下落不明"],
    22         "马本在":["炼器师","挂:神机百炼","老马的的曾祖父"],
    23         "阮丰":["干城章嘉峰上修行","挂:六库仙贼","传授于巴伦"],
    24         "谷畸亭":["全性中人","挂:大罗洞观","不详"],
    25         "端木瑛":["不详","挂:双全手","不详"]
    26     }
    27 }
    28 
    29 for i in under_one_person:
    30     print(i)    #打印key     
    31 
    32 #变更value值
    33 under_one_person["8Buff"]["周圣"][2]="也总已习得该技能"
    34 print(under_one_person["8Buff"]["周圣"])
    35 
    36 #输出结果
    37 NaDouTong
    38 Region
    39 8Buff
    40 ['武当弟子', '挂:风后奇门', '也总已习得该技能']
    View Code
    • 字典的其他操作
     1 info={
     2     'no101':"Ace Shang",
     3     'no102':"Baobao Feng",
     4     'no103':"Chulan Zhang",
     5     'no104':"Zhenqiu Wang",
     6 }
     7 
     8 #打印字典values
     9 print("1:",info.values())
    10 
    11 #打印字典的key
    12 print("2:",info.keys())
    13 
    14 #setdefault
    15 print("3:",info.setdefault("no104","Ye Wang"))  #当key存在时,则获取key值对应的value,并输出此value
    16 print("4:",info.setdefault("no105","Si Xu"))    #当key不存时,则新增key值并赋相应的value,同时输出新赋值的value
    17 print("5:",info)
    18 
    19 #update
    20 new_info={1:2,"no101":"Zhiwei Zhang",4:5,}
    21 info.update(new_info)   #将new_info合并至info,并且将已经存在key的value更新为新的value
    22 print("6:",info)
    23 
    24 #item
    25 print("7:",info.items())    #将字典转化成列表
    26 
    27 #循环dict
    28 for key in info:
    29     print(key,info[key])    #key输出字典的key值,info[key]输出key对应的value
    30 
    31 #循环dict之item
    32 for k,v in info.items():    #将字典转换成列表,别按照列表对应的关系进行输出;当数据量大时,勿用该方法
    33     print(k,v)
    34 
    35 #输出结果
    36 1: dict_values(['Ace Shang', 'Baobao Feng', 'Chulan Zhang', 'Zhenqiu Wang'])
    37 2: dict_keys(['no101', 'no102', 'no103', 'no104'])
    38 3: Zhenqiu Wang
    39 4: Si Xu
    40 5: {'no101': 'Ace Shang', 'no102': 'Baobao Feng', 'no103': 'Chulan Zhang', 'no104': 'Zhenqiu Wang', 'no105': 'Si Xu'}
    41 6: {'no101': 'Zhiwei Zhang', 'no102': 'Baobao Feng', 'no103': 'Chulan Zhang', 'no104': 'Zhenqiu Wang', 'no105': 'Si Xu', 1: 2, 4: 5}
    42 7: dict_items([('no101', 'Zhiwei Zhang'), ('no102', 'Baobao Feng'), ('no103', 'Chulan Zhang'), ('no104', 'Zhenqiu Wang'), ('no105', 'Si Xu'), (1, 2), (4, 5)])
    43 no101 Zhiwei Zhang
    44 no102 Baobao Feng
    45 no103 Chulan Zhang
    46 no104 Zhenqiu Wang
    47 no105 Si Xu
    48 1 2
    49 4 5
    50 no101 Zhiwei Zhang
    51 no102 Baobao Feng
    52 no103 Chulan Zhang
    53 no104 Zhenqiu Wang
    54 no105 Si Xu
    55 1 2
    56 4 5
    View Code
    • fromkey 初始化生成字典
     1 #初始化生成字典    fromkey
     2 info=dict.fromkeys([1,2,3],"temp")
     3 info2=dict.fromkeys([4,5,6],["冯宝宝",{"name":"张楚岚"},"王也"])
     4 print(info)
     5 print(info2)
     6 
     7 #修改
     8 info[2]="ace"
     9 print(info)
    10 
    11 info2[4]="宝儿姐"
    12 info2[5][1]["name"]="不摇碧莲"
    13 #同浅copy,对于字典赋值的只是路径,改变一个key值对应的value,则其他key中对应value也变更
    14 print(info2)
    15 
    16 #输出结果
    17 {1: 'temp', 2: 'temp', 3: 'temp'}
    18 {4: ['冯宝宝', {'name': '张楚岚'}, '王也'], 5: ['冯宝宝', {'name': '张楚岚'}, '王也'], 6: ['冯宝宝', {'name': '张楚岚'}, '王也']}
    19 {1: 'temp', 2: 'ace', 3: 'temp'}
    20 {4: '宝儿姐', 5: ['冯宝宝', {'name': '不摇碧莲'}, '王也'], 6: ['冯宝宝', {'name': '不摇碧莲'}, '王也']}
    • 三级菜单 略

    因涉及到较多重复代码,后期学到函数时再进行编码....

  • 相关阅读:
    【UR #5】怎样跑得更快 神秘做法
    NOIWC 2022 漂流
    Layui表格,序号列自动产生序号
    DW错误之MARGIN以及其解决办法
    Vue3 vmodel自定义修饰符
    【读书笔记】风控大数据时代下的信贷风险管理和实践
    学习如何学习
    final、finally、finalize 有什么区别?
    java 中都有哪些引用类型?
    Java中二叉树的前序遍历、中序遍历及后续遍历代码
  • 原文地址:https://www.cnblogs.com/ace722/p/9363925.html
Copyright © 2020-2023  润新知