首页 > 编程语言 >Python元组(tuple)和字典(dict)的合并使用

Python元组(tuple)和字典(dict)的合并使用

时间:2023-06-16 15:12:40浏览次数:52  
标签:tuple Python 元组 dict print 列表 my 字典

Python 包含6种数据类型,其中Number(数字)、String(字符串)、Tuple(元组)、 List(列表)、Dictionary(字典)、Set(集合);

1.回顾Tuple(元组)的常用方法:

  • Tuple的创建:tuple()方法创建,或者小括号的方式,有时也直接省略小括号
    a = tuple(range(10))
    b = tuple('hkd')
    c = tuple([1,2,3])

    PS:tuple()可以接收列表、字符串、其他序列类型、迭代器等生成元组。 list()可以接收元组、字符串、其他序列类型、迭代器等生成列表。 

  • Tuple的常用方法:基本上跟列表(list)一样,不过,元组的特殊性就在于元素是不可变系列(不能修改元组中的元素)
    a = (1, 1, 2, 8, 4, 1, 6, 7, 8, 9)
    # 元组的切片方法
    print(f"取前四个元素:{a[:4]}")
    # 元组的计数方法
    print(f"1出现的次数:{a.count(1)}次" )
    # 元组的索引
    print( f"数字8第一次出现的索引位置:{a.index(8)}")
    # 元组的排序 使用内置函数sorted(tupleObj),并生成新的列表对象。
    print(f"元组a的排序:{sorted(a)}")

  • ps:元组的元素不能修改
  • 列表与元组的结合使用:zip(列表1,列表2,...)将多个列表对应位置的元素组合成为元组(多出来的元素则忽视), 并返回这个zip对象,需要通过list方法转为列表
    a = [10,20,30]
    b = [40,50,60,80,100]
    c = zip(a,b)
    print(f"c的类型为:{type(c)}")
    # 将c转化为列表
    list(c) 

  • 元组总结 1 元组的核心特点是:不可变序列。 2 元组的访问和处理速度比列表快。 3 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用
2.回顾dict(字典)的常用方法:
  • 字典的创建:通过{}、dict()来创建字典对象。 
    # ①:{}方式创建
    a = {'name':'lxx','age':18,'job':'salmer'}
    print(f"花括号方式创建a为:{a}")
    
    # ②:dict()方式创建
    b = dict(name='lxx',age=18,job='salmer')
    print(f"dict方式创建b为:{b}")
    
    # ③:zip()方式创建
    k = ['name','age','job']
    v = ['lxx',18,'salmer']
    w = dict(zip(k,v))
    print(f"zip方式创建w为:{w}")
    
    # ④:通过fromkeys创建值为空的字典
    f = dict.fromkeys(['name','age','job'])
    print(f"fromkeys创建f为:{f}")

  • 字典元素的访问 

    a = {'name':'lxx','age':18,'job':'salmer'}
    # 通过get()方法获得“值”。❤❤推荐使用。
    print(f"job对应的值为:{a.get('name')}")
    # 通过 [键] 获得“值”。若键不存在,则抛出异常。
    print(f"age对应的值为:{a['age']}")
    # 列出所有的键值对
    print(f"a的所有键值对为:{a.items()}")
    # 列出所有的键,列出所有的值
    print(f"a的所有键为:{a.keys()}")
    print(f"a的所有值为:{a.values()}")
    # len() 键值对的个数
    print(f"a的键值对个数为:{len(a)}个")
    # 检测一个“键”是否在字典中
    print(f"name是否是字典a的键:{'name' in a}")

  • 字典元素添加、修改、删除 

    a = {'name':'lxx','age':18,'job':'salmer'}
    # 新增键值对,若没有则新增,有则重新赋值
    a['age'] = 20
    a['phone'] = 15910001000
    print(f"a的值为:{a}")
    # del():字典中元素的删除
    del(a['job'])
    print(f"a的值为:{a}")
    # pop() 删除指定键值对,并返回对应的“值对象”
    a.pop('phone')
    print(f"a的值为:{a}")
    # popitem() :随机删除和返回该键值对。字典是“无序可变序列”,因此没有第一个元素、最后一个元素的概念;
    a.popitem()
    print(f"a的值为:{a}")
    # clear() 删除所有键值对
    a.clear()
    print(f"a的值为:{a}")

 

3.元组(tuple),字典(dict)和列表(list)的合并使用

  • 题目来源:Convert and Aggregate - python coding challenges - Py.CheckiO
  • 大致要求:传入一个元组列表,每个元组由两个值组成:一个字符串和一个整数。需要创建并返回字典,其中键是来自输入元组的字符串值,值是聚合(求和) 整数,每个特定键的输入元组中的值。生成的字典不应包含具有空键或零值的项目。
  • 例如:

  • 完整代码:
    def conv_aggr(li:list):
        my_dict = {}
        for k,v in li:
            if k not in my_dict:
                my_dict[k] = v
            else:
                my_dict[k] += v
        for i in list(my_dict.keys()):
            if my_dict[i] == 0:
                del my_dict[i]
        if '' in my_dict.keys():
            del my_dict['']
        return my_dict

   

标签:tuple,Python,元组,dict,print,列表,my,字典
From: https://www.cnblogs.com/lxxduang/p/17483096.html

相关文章

  • python测试系列教程——python+Selenium+chrome自动化测试框架
    需要的环境浏览器(Firefox/Chrome/IE…)PythonSeleniumSeleniumIDE(如果用Firefox)FireBug、FirePath(如果用Firefox)chromedriver、IEDriverServer、phantomjs.exeIDE(Pycharm/Sublime/Eclipse…)1、浏览器建议用Firefox或Chrome,千万不要用最新版本,要用早两到三个版本的。2......
  • Python使用HTTP隧道代码示例
    在本地代码中,嵌入隧道模式HTTP,HTTP模式:服务器端口账号密码,即可使用HTTP隧道代理来做访问#!-*-encoding:utf-8-*-importrequests#要访问的目标页面targetUrl="http://ip.hahado.cn/ip"#代理服务器proxyHost="ip.hahado.cn"proxyPort......
  • [数据分析与可视化] Python绘制数据地图3-GeoPandas使用要点
    本文主要介绍GeoPandas的使用要点。GeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口。GeoPandas扩展了Pandas的数据类型,并使用matplotlib进行绘图。GeoPandas官方仓库地址为:GeoPandas。GeoPandas的官方文档地址为:GeoPandas-doc。本文主要参考GeoPandasEx......
  • 数据结构(Python版)——3、基本结构
    数据结构(Python版)——3、基本结构什么是线性结构LinearStructure线性结构是一种有序数据项的集合,其中每个数据项都有唯一的前驱和后继除了第一个没有前驱,最后一个没有后继新的数据项加入到数据集中是,只会加入到原有某个数据项之前或之后具有这种性质的数据集,就称为线性结构......
  • Python几个数字计算最接近某个值的和(用于报销的)
    一、序场景:公司报销需要用打车发票,金额不能多于报销额度,自己搭配出最接近报销的金额二、实现思路读取全部打车能报销的金额,全部相加,留下小等于报销金额的组合,然后取最大值与组合三、实现代码实现代码importitertoolsimportpandasaspdimportnumpyas......
  • python基础语法练习题
    """一、必做题1、下面变量名正确的是(ABD)A.nameB.num1C.1_numD.name_A_12、Python不支持的数据类型有(A)A、charB、intC、floatD、list3、python源程序执行的方式(B)A编译执行B解析执行C直接执行D边编译边执行4、Python语言语句块的标记是(C)A分号B......
  • python基础-字符串
    基础必做题:题目1:现在有字符串:str1='pythoncainiao666'请使用代码找出第5个字符请复制一份字符串,保存在变量str_two当中(赋值运算符)"""str1='pythoncainiao666'str_two=str1[4]print(str_two)#输出o"""题目2:卖橘子的计算器(字符串转化)写一段代码,用户输入橘子的价格......
  • Python数据类型-列表与元组
    #题目1:删除如下列表中的"矮穷丑",写出2种或以上方法:#info=["yuze",18,"男","矮穷丑",["高","富","帅"],True,None,"狼的眼睛是啥样的"]info=["yuze",18,"男","矮穷丑",["......
  • Python中常用set()方法详解!
    set是Python中一种集合数据类型,表示一个无序且不重复的集合。set()方法可以用于创建一个空的集合,也可以将其他可迭代对象转换为集合。与其他Python数据类型不同,set没有索引,不能通过索引访问其元素,但可以使用一些方法来操作和访问集合中的元素。1、add():添加一个元素到set集......
  • Python初学者友好丨详解参数传递类型
    摘要: 本文清晰地解释了Python中的不同参数传递类型,并提供了示例代码来说明每种类型的用法。对于初学者或不清楚Python传参的读者们来说是非常有益的,文中提供了足够的信息来理解和使用Python中的函数参数传递。本文分享自华为云社区《提升Python函数调用灵活性:参数传递类型详解》......