• Python语法--元组、字典、Set


    上节课作业的参考答案:

    1. # 课堂训练
    2. products = [["iphone", 6888], ["MacPro", 14888], ["小米6", 2499], ["Book", 60], ["Nike", 690]]
    3. print("--------- 商品列表 ----------")
    4. i = 0
    5. for product in products:
    6. i = i + 1
    7. print(i," " + product[0] + " ", product[1])
    8. products1 = []
    9. while True:
    10. goodsNum=input("请输入要选择的商品编号(如退出购买选择q):")
    11. if goodsNum == "1":
    12. products1.append(products[0])
    13. if goodsNum == "2":
    14. products1.append(products[1])
    15. if goodsNum == "3":
    16. products1.append(products[2])
    17. if goodsNum == "4":
    18. products1.append(products[3])
    19. if goodsNum == "5":
    20. products1.append(products[4])
    21. if goodsNum=="q":
    22. print("--------- 您购买的商品如下 ----------")
    23. for product in products1:
    24. print(product[0] + " ", product[1])
    25. break

    元组(Tuple)是一种集合方式,但是展现方式是以()形式,如:(1,2,3)所以在查询使用时可以遍历,可以下标获取某个元素,字典学过程序都知道,其实就时map结构,key,value形式存储

    1.元组的定义和访问                                                                    

    1.1 元组的定义

    tuple=()代表元组类型

    1. tuple=();
    2. print(type(tuple))
    3. # 运行结果: 代表是元组对象

    要注意的是元组里只有一个元素时需要加上逗号,否则就不是元组类型,就是普通的括号里展示的类型,如:tuple=(50),打印类型以后则是int类型,修改为tuple2=(50,)则是元组类型

    1. tuple=(50);
    2. print(type(tuple))
    3. #tuple1=(50); # 这样写就不是tuple了,就给解析成int类型了
    4. tuple2=(50,);
    5. print(type(tuple2))

    运行结果: 

     1.2 元组的访问

    根据下标获取元素

    1. tup1=("abc","def",2000,2020)
    2. print(tup1[0]) # 根据下标获取第一个元素
    3. # 结果:abc

    可以用负数获取-1则获取最后一个 ,-2是2000,-3是def,-4是abc,-5就报错了,指针超了

    1. tup1=("abc","def",2000,2020)
    2. print(tup1[-1]) # 获取最后一个元素
    3. # 结果:2020

    也可以获取指定哪个到哪个范围区间的下标

    1. tup1=("abc","def",2000,2020)
    2. print(tup1[0:3]) # 获取指定0-3区间元素,左开右闭
    3. # 结果:('abc', 'def', 2000)

    当然也可以遍历使用

    1. tup1=("abc","def",2000,2020)
    2. for t in tup1:
    3. print(t)

    2. 元组增加修改操作                                                                   

    添加:一旦创建元组,则不可以添加元组元素,否则报错,可以元组与元组之间合并数据,

    1. tup1=(12,34,22)
    2. tup2=("a","b")
    3. tup=tup1+tup2
    4. print(tup)
    5. # 运行结果:(12, 34, 22, 'a', 'b')

     修改:元组不支持修改

    1. tup1=(12,34,22)
    2. tup1[0]=7

    运行一下:

    3.元组删除                                                                               

    元组不可以删除元素,只能整个变量删除,删除完毕在使用会报错

    1. # 元组删除
    2. tup1=(12,34,22)
    3. del tup1 # 删除整个元组变量,而不是某个元素
    4. print(tup1) #del元组以后打印变量会报错,name 'tup1' is not defined

     总结:元组的增删改其实是都不允许的,只能够遍历获取等,在实际使用中有时获取的数据库数据等会是元组的形式返回,则需要遍历获取等操作。

    4.字典

    4.1 字典的访问

    字典就和java里的map是一样的格式,python比java还多了其他访问方式,

    根据键获取值的一种方式,如果拿一个不存在的键获取值则报错

    1. info={"name":"xiaoduf","age":12}
    2. print(info["name"]) #根据健获取值
    3. print(info["age"])
    4. # 结果
    5. '''
    6. xiaoduf
    7. 12
    8. '''

     再获取一个性别,字典里是没有的,则会报错

    print(info["gender"]) #访问了一个不存在的key会报错

     还可以和java一样,用info.get("键")获取值,获取一个不存在的key值不会报错,会返回None,也可以通过第二个参数设置默认的值

    1. info={"name":"xiaoduf","age":12}
    2. print(info.get("gender")) # 访问了一个不存在的key不会报错,默认会返回None
    3. print(info.get("gender","null")) # 访问了一个不存在的key可以自定义一个默认的值
    4. print(info.get("age","33")) # 能找到不会用默认值
    5. # 结果:
    6. '''
    7. None
    8. null
    9. 12
    10. '''

    4.2 字典的新增、修改

    1. info={"name":"xiaoduf","age":12}
    2. info["id"]="100001"
    3. print("字典新增:",info)
    4. info={"name":"xiaoduf","age":12}
    5. info["id"]="2222"
    6. print("字典修改:",info)
    7. # 运行结果:字典修改: {'name': 'xiaoduf', 'age': 12, 'id': '2222'}

     4.3 字典删除

    del和pop都是指定健删除某个键值对信息

    1. info={"name":"xiaoduf","age":12}
    2. print("删除前:%s "%info)
    3. del info["name"] # 删除的是键值对
    4. info.pop("age") # 删除的是键值对
    5. print("删除后:%s:"%info)

    结果:

     4.4 字典清空数据

    如果del 删除变量,则整个变量不允许访问,但是可以用clear它只会把数据清空,还可以继续使用变量

    1. info={"name":"xiaoduf","age":12}
    2. info.clear()
    3. print(info) #清空数据还有变量
    4. 结果:{}

    4.5 字典遍历和查询

    可以通过keys()方法获取所有的key,然后通过for循环遍历得到每一个key

    1. info={"name":"xiaoduf","age":12}
    2. print(info.keys()) # 得到所有的健,以列表形式,后续可自己遍历
    3. # 遍历所有的key
    4. for key in info.keys():
    5. print("key:",key)
    6. # 运行结果:
    7. '''
    8. dict_keys(['name', 'age'])
    9. key: name
    10. key: age
    11. '''

    可以通过values()方法获取所有的值,然后通过for循环遍历得到每一个值

    1. info={"name":"xiaoduf","age":12}
    2. print(info.values()) # 得到所有的值,列表形式
    3. # 遍历所有的值
    4. for value in info.values():
    5. print("value:",value)
    6. # 运行结果:
    7. '''
    8. dict_values(['xiaoduf', 12])
    9. value: xiaoduf
    10. value: 12
    11. '''

    可以通过items()方法获取到键值项,进行遍历得到键值,这样一起得到key和value

    1. info={"name":"xiaoduf","age":12}
    2. print(info.items()) # 得到所有的项,最后形式是每一个键值对是一个元组
    3. for key,vlaue in info.items():
    4. print("%s:%s"%(key,vlaue))
    5. # 运行结果:
    6. '''
    7. dict_items([('name', 'xiaoduf'), ('age', 12)])
    8. name:xiaoduf
    9. age:12
    10. '''

    5.集合SET                                                                                   

    在python中集合Set格式形式是花括号表达,无索引,除里这个和其他语言相似,过率重复元素,无序集合

    5.1 Set的定义

    1. 可以花括号直接定义,可以set([1,,2,3])定义,打印它两的类型都是set集合,当然打印数据也是花括号展现形式

    1. # set和dict类似,也是一组key的集合,但不存储value,key不能重复,是无需的,重复会自动过率掉
    2. sets={"s","s","e"}
    3. print(type(sets))
    4. sdatas=set([1,2,3])
    5. print(type(sdatas))
    6. print(sdatas)
    7. #运行结果:
    8. '''
    9. print(sdatas)
    10. '''

    重复的数据可直接去重展示

    1. sdatasRep=set([1,2,3,1,2])
    2. print(sdatasRep)
    3. # 运行结果:{1, 2, 3}

    当然了和其他的所有一样,想要得到所有的数据遍历即可

    1. sdatas=set([1,2,3])
    2. for s in sdatas:
    3. print(s)

    5.2 添加、删除、更新

    其实都大同小异的,所以就快速的说下Set怎么使用

    添加通过add()

    1. sdatas=set([1,2,3])
    2. sdatas.add(4)
    3. # sdatas结果是:{ 1, 2, 3, 4}

    Set不允许修改集合元素,可以把两个Set合并,通过update()方法实现

    1. sdatas=set([1,2,3])
    2. sdatas1=set([4,5,6])
    3. sdatas.update(sdatas1)
    4. print(sdatas)
    5. # sdatas结果是:{1, 2, 3, 4, 5, 6}

    删除:remove(),pop(),clear(),del

    remove()删除指定元素

    1. sdatas=set([1,2,3])
    2. sdatas.remove(3) #移除选中的元素不是下标,没有这个元素会报错
    3. print(sdatas)
    4. # 运行结果:{1, 2}

    pop()则清除元素第一个元素 

    1. sdatas=set([1,2,3])
    2. sdatas.pop() #清除第一个元素
    3. # sdatas结果是:{2, 3} ,

    clear清空数据 

    1. sdatas.clear() #清空数据
    2. print(sdatas)
    3. # sdatas结果是:set()

    del 则是删除元素变量,删除完毕则不可使用了

  • 相关阅读:
    Python Flask Web:博客登录和注册页面实现代码
    【3】CH347应用--USB转JTAG进行FPGA调试下载
    SoilingNet: Soiling Detection on Automotive Surround-View Cameras 个人总结
    【数据结构】—图的基本概念
    java高速公路收费管理计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
    HTB-Antique
    学习编程需要具备哪些条件
    Ajax实现数据回显
    一些ECharts配置
    如何调整 Kubernetes StatefulSet 卷的大小
  • 原文地址:https://blog.csdn.net/dfBeautifulLive/article/details/126155375