zoukankan      html  css  js  c++  java
  • 元祖,range,字典,结构,fromkeys的使用

    3.5.3 元祖 关键字 tuple

    tu=(1,2,3,'你好',True)
    print(tu)
    

    元祖是有序,不可变数据,不能进行修改, 支持索引查看

    存储一些比较重要的信息,在配置文件中使用

    存放一些用户密码的时候可用

    元祖其实就是一个不可以修改的列表

    tu=('你好')
    print(type(tu))    #数据类型为字符串
    tu=('你好',)
    print(type(tu))    #数据类型为元祖
    tu=()
    print(type(tu))    #数据类型为元祖
    

    3.5.4 range 范围

    range(0,10) #0起始位置 10终止位置

    print(range(0,10))    
    

    输出结果:range(0,10)

    python3中range(0,10)是一个可迭代对象

    python2中的xrange和python3中range是相似的,都是可迭代对象

    python2中的range 默认获取到一个列表

    python3中获取列表如下:

    print(list(range(0,10)))  #输出结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    print(list(range(0,10,2))) #输出结果: [0, 2, 4, 6, 8]
    

    range 和切片一样

    range 第一个是起始位置,第二个是终止位置,第三个是步长,终止位置和切片一样都是顾头不顾尾,和切片不同的是他们之间用逗号分开

    for i in range(1,100,2):    #可以让for循环来循环数字
        print(i)
    

    3.5.5 字典 关键字 dict 无序可变

    键值对数据 dic={'键':'值'} dic={'key':'value'} 存储数据

    字典的查找快一些 将数据和数据之间进行关联

    字典中逗号分割是一个元素

    避免哈希冲突使用了开放寻址法

    可哈希的(不可变数据:int,str,tuple.bool)

    不可哈希的(可变的数据:list,dict,set)

    key必须是可哈希的(不可变),键不能重复,重复的话后面的值就会把前面的值覆盖

    value没有要求,可以保存任意类型的数据.

    键和值成双成对出现,不能没有值

    dic = {123:456,'123':456,True:'456',(1,2,3):['帅哥','美女']}
    print(dic[123])  #通过键查找值
    

    注意:dict保存的数据不是按照我们添加进去的顺序保存的,是按照hash表的顺序保存的,而hash表不是连续的,所以不能进行切片操作,它只能通过key来获取dict中的数据.

    python3.6以上版本,字典默认是有序的,咱们怎么写的就怎么打印出来,但是出去和别人说的时候,字典是无序的

    3.5.5.1 增

    dic = {123:456,'123':456,True:'456',(1,2,3):['帅哥','美女']}
    dic[55] = '小苍'
    print(dic)
    

    输出结果:{123: 456, '123': 456, True: '456', (1, 2, 3): ['帅哥', '美女'], 55: '小苍'}

    dic = {123:456,'123':456,True:'456',(1,2,3):['帅哥','美女']}
    dic.setdefault(55,'小苍')   #55为键,'小苍'为值
    print(dic)
    

    1.先去字典中通过55这个键去查有没有值,没有就是None

    2.如果有值,就不进行添加

    3.如果没有值,就添加 返回的是添加的值

    3.5.5.2 删

    1. 通过键删除 del
    dic = {123:456,'123':456,True:'456',(1,2,3):['帅哥','美女']}
    del dic[123]
    print(dic)
    
    1. 通过指定键删除
    dic = {123:456,'123':456,True:'456',(1,2,3):['帅哥','美女']}
    dic.pop(123)   #pop有返回值,返回被删除的值
    dic.pop(55,'没有')  #如果键值不存在,返回被指定的内容
    print(dic)
    
    1. 清空 clear
    dic = {123:456,'123':456,True:'456',(1,2,3):['帅哥','美女']}
    dic.clear()
    print(dic)
    
    1. 随机删除 popitem()
    dic = {123:456,'123':456,True:'456',(1,2,3):['帅哥','美女']}
    dic.popitem()
    print(dic)
    

    python3.6以上版本默认删除最后一个,以前版本中随机删除

    3.5.5.3 改

    1. 更新 update
    dic = {11:'aa',22:'bb'}
    dic.update({33:'cc',44:'dd'})  #()放的是字典
    print(dic)
    

    被更新的内容如果在,要更新的内容中的值就会覆盖之前的值

    update括号中的字典级别高于update前面的字典

    两个字典中没有一样的就合并

    dic = {11:'aa',22:'bb'}
    dic[11] = 'cc' #字典中存在这个键叫改,不存在这个键叫增
    print(dic)
    

    3.5.5.4 查

    1. 通过键查找
    dic = {11:'aa',22:'bb'}
    print(dic[11])  #如果键不存在就会报错
    
    1. get
    dic = {11:'aa',22:'bb'}
    print(dic.get(11)) #如果键不存在不会报错,返回None
    print(dic.get(33,'没有')) #可以指定返回的内容
    

    输出结果:

    aa
    没有

    1. setdefault
    dic = {11:'aa',22:'bb'}
    print(dic.setdefault(11)) #如果键不存在不会报错,返回None
    

    3.5.5.5 其他操作

    1. for 循环
    dic = {11:'aa',22:'bb'}
    for i in dic:
        print(i)   #输出的键
    
    dic = {11:'aa',22:'bb'}
    for i in dic:
        print(dic.get(i))  #输出的值 
    
    dic = {11:'aa',22:'bb'}
    for i in dic.keys():   
        print(i)     #输出的键
    print(dic.keys())   #高仿列表,不能使用下标 可使用for循环
    

    输出结果:

    11
    22
    dict_keys([11, 22])

    dic = {11:'aa',22:'bb'}
    for i in dic.values():   
        print(i)     #输出的值
    print(dic.values())   #高仿列表,不能使用下标  可使用for循环
    

    输出结果:

    aa
    bb
    dict_values(['aa', 'bb'])

    dic = {11:'aa',22:'bb'}
    for i in dic:   
        print(i,dic[i])     #输出的键和值
    
    dic = {11:'aa',22:'bb'}
    for i in dic.items():   
        print(i)     #输出的键和值   (元祖形式)
    

    输出结果:

    (11, 'aa')
    (22, 'bb')

    3.5.5.6 解构

    a,b,c = 1,2,3 #'456' [7,8,9] (7,8,9) {'1':7,'2':8,'3':'9'}字典输出的是键 True,,True,False     值和变量名要一一对应
    print(a)
    print(b)
    print(c)
    

    a = 1,2 本身是一个元祖

    dic = {11:'aa',22:'bb'}
    for i,k in dic.items():  #i,k = (11:'aa') 
        print(i)
        print(k)
    

    输出结果:

    11
    aa
    22
    bb

    3.5.5.7 fromkeys

    dic = dict.fromkeys([1,2,3]) #后面不写默认None
    print(dic)
    

    输出结果:{1: None, 2: None, 3: None}

    dic = dict.fromkeys([1,2,3],'你好')#前面是可迭代对象,创建字典的键,后面是字典的值 
    print(dic)
    

    输出结果:{1: '你好', 2: '你好', 3: '你好'}

    dic = dict.fromkeys([1,2,3],'你好') 
    dic[2] = '好嗨啊'
    print(dic)
    

    输出结果:{1: '你好', 2: '好嗨啊', 3: '你好'}

    dic = dict.fromkeys([1,2,3],[1,2,3]) 
    dic[2].append(5)
    print(dic)
    

    输出结果:{1: [1, 2, 3, 5], 2: [1, 2, 3, 5], 3: [1, 2, 3, 5]}

    创建的新字典的值用的是同一个值,值是一个可变数据类型

    dic = dict.fromkeys([1,2,3],[1,2,3]) 
    dic[2] = '你好'
    print(dic)
    

    输出结果:{1: [1, 2, 3], 2: '你好', 3: [1, 2, 3]}

    1.先创建一个新字典:{1: [1, 2, 3], 2: [1, 2, 3], 3: [1, 2, 3]}

    2.更改的是字典中键2中的值为'你好'

    3.5.5.8 字典的嵌套

    dic = {'北京':{'二环':{'故宫':'皇帝'}},'河北':{'保定':'驴肉火烧'}}
    print(dic['北京']['二环']['故宫'])
    

    输出结果:皇帝

  • 相关阅读:
    Asp.net C# 图像处理
    java报表工具参数强化
    Aspose.Pdf for .NET控件PDF文档到Excel、EPS、SVG等的转换
    使用Solid Converter PDF控件把PDF转换至Word文档
    报表控件报表设计器工具QuickReport下载
    图形图像处理CAD控件Vectordraw Developer Framework下载
    Aspose.Words控件支持DOC,OOXML,RTF,HTML,OpenDocument,PDF,XPS,EPUB和其他格式
    自动验证编码值的条形码控件Barcode Professional SDK for .NET
    MVC技术的功能强大的报表创建和设计控件
    XML Barcode Webservice条形码控件介绍
  • 原文地址:https://www.cnblogs.com/lav3nder/p/11172640.html
Copyright © 2011-2022 走看看