zoukankan      html  css  js  c++  java
  • python基础07_tuple_dict

    tuple 元组     dict 字典

    更详细参考:https://www.cnblogs.com/jin-xin/articles/7562422.html

    #!/usr/bin/env python
    # coding:utf-8
    
    # Tuple 元组: 只读列表 数据可以被查询,但不能被修改
    
    # 列表是有序的,元素可以任意修改、插入、删除,但元组不可以。
    tmp1 = []    # 创建空列表 list
    tmp2 = () # 创建空元组 tuple
    tmp3= {} # 创建空字典 dict
    tmp4= set() # 创建空集合 set

    print(type(tmp1))
    print(type(tmp2))
    print(type(tmp3))
    print(type(tmp4))
    # Tuple的创建取决于逗号,所以一般在元组最后加上逗号, 尤其是只有一个元素时,末尾一定要加逗号 
    #
    元素不可被修改,不能增加、删除
    temp1 = 1,
    print(type(temp1))

    temp2
    = (1, 2, 3, 4, 5, 6,)
    print(temp2[1])
    print(8 * (8))
    print(8 * (8,))

    # 也是可迭代对象
    for i in temp2:
      print(i)

    # 可转换、切片、索引、
    #
    元组的一级元素不可修改
    tu = (111,"alex",(11,22),[(33,44)],True,66,77,) tu[3][0] = "bbcc"
    # 这样是修改了一级元素列表里的元素。
    print(tu)

    ############## 方法
    #
    count 获取指定元素在元组中出现的次数


    字典 dict

    #!/usr/bin/env python
    # coding:utf-8
    
    info = {
        "k1": "v1",
        "k2": "v2",
        12: "asdf",
        True:1000,
        (11, 22,): 1234,
        2: ["abc", "defg"],
        "k3":["哈哈",(),33,44,{
            'kk1':'vv1',
            'kk2':'vv2',
            'kk3':(11,22),
        }],
        "k4":True
    }
    # 键值对,value可以是任何值  保存的时候按hash表保存
    # 列表、字典不能作为字典的Key
    # 注意: key 不能重复,重复只会保留一个。
    print(info)
    
    # 字典是无序的
    v = info['k3'][4]['kk3'][0]
    print(v)
    
    # 删除 修改
    del info['k1']
    del info['k3'][4]['kk3']
    
    # 默认循环key
    for item in info:
        print(item)
    
    print('***********************')
    # 循环values
    for item in info.values():
        print(item)
    
    
    print("======================")
    
    # 循环key value
    for k,v in info.items():
        print(k,v)
    #!/usr/bin/env python
    # coding:utf-8
    
    dic = {"k1":'v1','k3':'v3','k4':'v4','k5':'v5'}
    
    # 根据序列,创建字典,并指定统一的值
    v = dict.fromkeys(['k1',123,'999'],888)
    print(v)
    
    # 如果取不存在的key,就会程序出错。而使用get方法取不存在的key,则会返回None
    # u = dic['k2']
    # print(u)
    
    # u = dic.get('k2','不存在')
    # print(u)
    
    
    # 也可以在没找到key时,传个默认值
    u = dic.get('k2','不存在')
    print(u)
    
    # pop 可以指定key来删除,popitem 则是随机删除一个
    # w = dic.pop('k3')
    # print(w)
    # 也可以指定找不到时的返回值
    w = dic.pop('k33','no found')
    print(w)
    
    
    # 设置值,存在则不设置,并获取存在的值 ;不存在就添加,并获取添加的值
    v = dic.setdefault('k1','boy')
    print(dic, v)
    
    v = dic.setdefault('k11','boy')
    print(dic, v)
    
    
    ## 更新
    dic.update({'k1':'11111','k4':1234})
    print(dic)
    
    dic.update(k1=44456,k3="啤酒花",k4=True) # **kwargs
    print(dic)
    
    
    # 最常用的几个 keys()    values()    items()    get     update

    以下是这几种类型的整理:

    #!/usr/bin/env python
    # coding:utf-8
    
    ## 一、数字
    # int(...)
    
    
    ## 二、字符串
    # replace /find /join /strip  startswith /split /upper /lower /format
    temp = 'I am {name}, age:{age}'
    # v = temp.format(name="Tom",age=38)
    
    v = temp.format(**{"name":'alex','age':22})  # **kwargs 就表示可以传字典
    print(v)
    
    
    ## 三、列表
    # append/ extend / insert
    # 索引、切片、循环
    
    ## 四、元组
    # 索引、切片、循环
    # 一级元素不能被修改
    
    ## 五、字典
    # get /update /keys /values /items
    # for 索引
    
    dic = {'k1':'v1'}
    v = 'k1' in dic
    print(v)
    
    w = 'v1' in dic.values()
    print(w)
    
    ## 六、布尔值
    # bool(...)
    # 记得这些是False就行: None  ""  ()  []  {}  0

    字典应用的小例子,用来代替 switch  case

    # -----字典映射复杂的switch case----
    # switch中,case下面可以写代码块,其实Python的字典也可以.
    
    print('请输入您想翻译星期几:')
    userinput = input("输入星期几(如星期一):")     #输入 '星期一'
    #userinput = raw_input("输入星期几(如星期一):")    # Python2.x
    
    def translateMonday():
        return 'Monday'
    
    def translateTuesday():
        return 'Tuesday'
    
    def translateWednesday():
        return 'Wednesday'
    
    def translateThursday():
        return 'Thursday'
    
    def translateFriday():
        return 'Friday'
    
    def translateSaturday():
        return 'Saturday'
    
    def translateSunday():
        return 'Sunday'
    
    def unknow2():
        return '请输入正确的信息'
    
    # 从这里可以得出,字典的value也可以是函数.
    # value的值,直接写函数名
    # 这里的key是字符串,value是函数
    chineseName = {
        '星期一': translateMonday,
        '星期二': translateTuesday,
        '星期三': translateWednesday,
        '星期四': translateThursday,
        '星期五': translateFriday,
        '星期六': translateSaturday,
        '星期日': translateSunday
    }
    
    # 注意这里的第二个参数也必须是一个函数,否则会报错的.
    # get()方法后面还有一个(), 是为了执行对应的函数
    englishName = chineseName.get(userinput,unknow2)()
    
    print(englishName)
    
    
    # 输入信息: 星期一
    # 输出结果: Monday
    # 扩展了字典中 key和value的知识点,value可以是函数,那么就可以用这样的方法来实现比较复杂的业务逻辑了.
    # 完美代替了switch case

    另一个列表与字典的例子:统计词频

    list1 = ['apple', 'orange', 'pear', 'apple', 'pear', 'apple', 'apple', 'banana']
    # 将上方的列表元素,统计词频
    
    # 创建空字典
    items = {}
    
    for i in list1:
        if i in items:
            items[i] = items[i] + 1
        else:
            items[i] = 1
    
    print(items)

     更多参考: https://www.cnblogs.com/jin-xin/articles/7562422.html

  • 相关阅读:
    7 MSSQL数据库备份与恢复
    6.Netbackup-Oracle数据库恢复演练报告(下)
    5、Oracle备份(oracle备份脚本配置)
    1.6 NBU Catalog备份还原
    标示符和关键字的总结--希望别再犯错
    JDBC_基础6步骤- 及优化
    算法总结
    bootstrap-全局CSS&js插件
    bootstrap入门&栅格系统
    JavaScript中的事件
  • 原文地址:https://www.cnblogs.com/frx9527/p/python_07.html
Copyright © 2011-2022 走看看