在Python中实现字典反转案例
有时候会碰到需求,将字典来反转,即:字典中的键作为值,而字典中的值作为键。对于字典比较小,可以使用普通方法
方法一:
使用普通方法转换
>>> d = {'a': 1, 'b': 2, 'c': 3} >>> def invert_dict(d): ... return dict([(v,k) for (k,v) in d.iteritems()]) ... >>> invert_dict(d) {1: 'a', 2: 'b', 3: 'c'}
方法二:
使用itertools模块中的izip方法来转换
>>> d = {'a': 1, 'b': 2, 'c': 3, 'd': 4} >>> from itertools import izip >>> def invert_dict(d): ... return dict(izip(d.itervalues(), d.iterkeys())) ... >>> invert_dict(d) {1: 'a', 2: 'b', 3: 'c', 4: 'd'} >>>
备注:
1. 字典比较大时,使用itertools模块中的izip方法来转换要高效的多.
2. 反转之前值应该要确保不是列表这样不可hash的值,否则不能反转.
补充知识:python 字典键和值翻转输出代码
我就废话不多说了,大家还是直接看代码吧~
dict=eval(input()) #输入格式:dict = {"a":1,"b":2} dict_new={} try: for k,v in dict.items(): dict_new[v]=k print(dict_new) except: print("输入错误")
以上这篇在Python中实现字典反转案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
如何用python反转图片,视频
利用python反转图片/视频 准备:一张图片/一段视频 python库:Pillow,moviepy 安装库 pip install Pillow -i https://mirrors.aliyun.com/pypi/simple pip install moviepy -i https://mirrors.aliyun.com/pypi/simple 默认官方镜像源,我这里尝试的时候没有任何进度.切换到国内的源,比如阿里镜像,清华镜像即可.第一次使用国内源,简直是神速! 反转效果 反转后 实
-
python反转(逆序)字符串的6种方法详细
对于一个给定的字符串,逆序输出,这个任务对于python来说是一种很简单的操作,毕竟强大的列表和字符串处理的一些列函数足以应付这些问题 了,今天总结了一下python中对于字符串的逆序输出的几种常用的方法 方法一:直接使用字符串切片功能逆转字符串 >>> def strReverse(strDemo): return strDemo[::-1] >>> print(strReverse('jb51.net')) ten.15bj 结果: ten.15bj 方法二:遍历构
-
Python 反转输出正整数的操作
题目: 获得输入正整数 N,反转输出该正整数,不考虑异常情况. 输入格式:输入一个正整数 输出格式
-
Python实现链表反转的方法分析【迭代法与递归法】
本文实例讲述了Python实现链表反转的方法.分享给大家供大家参考,具体如下: Python实现链表反转 链表反转(while迭代实现): 链表的反转引入一个cur_node变量,表示当前节点:同时需要引入一个变量new_link表示反转后的新链表:while循环内还需中间变量tmp存放当前节点的后继节点,防止原链表数据丢失. 在while循环内(循环条件为 cur_node !=None,若设置为cur_node.next将导致最后一个节点无法反转到新链表): 首先需要将当前节点的后继节点传递
-
Python reversed反转序列并生成可迭代对象
英文文档: reversed(seq) Return a reverse iterator. seq must be an object which has a __reversed__() method or supports the sequence protocol (the __len__() method and the __getitem__() method with integer arguments starting at 0). 反转序列生成新的可迭代对象 说明: 1. 函数
-
python如何实现单向链表及单向链表的反转
链表的定义 链表中的每个节点会存储相邻节点的位置信息,单链表中的每个节点只存储下一关节点的位置信息 单向链表的实现 class ListNode: def __init__(self, val): self.val = val self.next = None 要实现单向链表只需要把几个节点关联起来就可以了,把一个节点的next设置为另一个节点就可以了,例如创建一个A->B->C 的单向链表可以这么写: first_node = ListNode("A") second_n
-
Python 实现反转整数的案例(很容易懂的那种)
题目: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 .请根据这个假设,如果反转后整数溢出那么就返回 0. 解题思路: 1.实现数据的反转 如果是正数: tra = 0 while x != 0: n2 = x%10 x = x //10 tra = tra*10
-
python3整数反转的实现方法
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果. 如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0. 假设环境不允许存储 64 位整数(有符号或无符号). 示例 1: 输入:x = 123 输出:321 示例 2: 输入:x = -123 输出:-321 示例 3: 输入:x = 120 输出:21 示例 4: 输入:x = 0 输出:0 思路1:将其转为字符串进行翻转,并进行正负的判断.最后,题目要求如果反转后整数超过
-
Python 列表反转显示的四种方法
第一种,使用reversed 函数,reversed返回的结果是一个反转的迭代器,我们需要对其进行 list 转换 listNode = [1,2,3,4,5] newList = list(reversed(listNode)) print(newList) #结果 [5,4,3,2,1] 第二种,使用sorted函数,sorted是排序函数,它是对一个列表进行排序后生成一个新的list列表,而sort则是在原来的列表上直接进行排序. listNode = [1,2,3,4,5] newLis
-
python反转一个三位整数的多种实现方案
在LintCode上练习遇到这个问题,查阅资料找到多种方法,总结如下. 输入 输出 123 321 第一种:整数方法取余取整实现 class Solution: """ @param number: A 3-digit number. @return: Reversed number. """ def reverseInteger(self, number): g = number%10 #取出个位数 s = (int(number/10))%1
随机推荐
- Java中接收键盘输入的三种方法
- win7中VMware安装CentOs7搭建Linux环境教程
- javascript 删除数组元素和清空数组的简单方法
- php 连接mssql数据库 初学php笔记
- Python文件及目录操作实例详解
- 发一个采集(小偷)用的类,ASP+缓存实现
- android使用gesturedetector手势识别示例分享
- JS 字符串连接[性能比较]
- jquery 实现上下滚动效果示例代码
- php实现文件下载功能的几个代码分享
- 完美解决jsp页面在IE8下文本模式自动为(杂项Quirks)导致页面显示错位
- 如何使用索引提高查询速度
- php如何获取文件的扩展名
- 仿IOS效果 带弹簧动画的ListView
- Android实现可使用自定义透明Dialog样式的Activity完整实例
- 虚拟机中centos修改时间的方法
- Python面向对象基础入门之编码细节与注意事项
- Spring实战之使用p:命名空间简化配置操作示例
- 微信小程序仿淘宝热搜词在搜索框中轮播功能
- Vue使用自定义指令实现拖拽行为实例分析