Python中按值来获取指定的键
Python字典中的键是唯一的,但不同的键可以对应同样的值,比如说uid,可以是1001。id同样可以是1001。这样的话通过值来获取指定的键,就不止一个!而且也并不太好处理。这里同样提供两种思路来处理。
方法一:
>>> dct = {'Name': 'Alice', 'Age': 18, 'uid': 1001, 'id': 1001} >>> def get_key1(dct, value): ... return list(filter(lambda k:dct[k] == value, dct)) >>> get_key1(dct, 1001) ['id', 'uid']
方法二:
>>> dct = {'Name': 'Alice', 'Age': 18, 'uid': 1001, 'id': 1001} >>> def get_key2(dct, value): ... return [k for (k,v) in dct.items() if v == value] >>> get_key2(dct, 1001) ['id', 'uid'] >>> get_key2(dct, 1000) []
上面的两种方法可以很方便高效的来处理字典中按值来找键的问题!
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
相关推荐
-
Python中一般处理中文的几种方法
Python中的中文是个很头痛的问题,Python2和Python3都会出现,而且py2中出现的概率要大些. 有一道面试题: Python中如何处理中文问题,能想到的就是以下几方面来规避: 1. 首行添加 # coding = utf-8 # coding = utf-8 # 或者 # -*- coding:utf-8 -*- 2. 字符串前添加u >>> s = u'中文' >>> print(s) 中文 3. 添加以下代码 import sys reload(sys
-
Python中最大递归深度值的探讨
Python对递归函数设置是有默认值. 可以通过下面命令来查看设置的默认值 >>> import sys >>> sys.getrecursionlimit() 3000 查看该函数的帮助文件就更清晰了: >>> help(sys.getrecursionlimit) Help on built-in function getrecursionlimit in module sys: getrecursionlimit(...) getrecursio
-
Python去除字符串前后空格的几种方法
其实如果要去除字符串前后的空格很简单,那就是用strip(),简单方便 >>> ' A BC '.strip() 'A BC' 如果不允许用strip()的方法,也是可以用正则匹配的方法来处理. >>> s1 = ' A BC' >>> s2 = 'A BC ' >>> s3 = ' A BC ' >>> s4 = 'A BC' >>> def trim(s): ... import re ...
-
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
有一道Python面试题, 以下代码有什么局限性,要如何修改 def strTest(num): s = 'Hello' for i in range(num): s += 'x' return s 上面的代码其实可以看出:由于变量str是不变对象,每次遍历,Python都会生成新的str对象来存储新的字符串,所以num越大,创建的str对象就越多,内存消耗约大,速度越慢,性能越差. 如果要改变上面的问题,可以变字符串拼接为join联合的方式,代码如下: def strTest2(num): s
-
用Python写一个模拟qq聊天小程序的代码实例
Python 超简单的聊天程序 客户端: import socket, sys host = '10.248.27.23' # host = raw_input("Plz imput destination IP:") # data = raw_input("Plz imput what you want to submit:") port = 51423 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) tr
-
Python之lambda匿名函数及map和filter的用法
现有两个元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}] t1 = (('a'), ('c')) t2 = (('b'), ('d')) print(list(map(lambda t: {t[0]: t[1]}, zip(t1, t2)))) l = lambda t1, t2: [{i: j} for i, j in zip(t1, t2)] print(l(t1, t2)) map内置函数使用: ma
-
Python小进度条显示代码
有的时候程序需要有进度条显示,比如说安装程序.下载文件等场合. 下面有一段小程序可达到效果 程序代码 import time for i in range(0, 101, 2): time.sleep(0.3) num = i // 2 if i == 100: process = "\r[%3s%%]: |%-50s|\n" % (i, '|' * num) else: process = "\r[%3s%%]: |%-50s|" % (i, '|' * num)
-
Python两个字典键同值相加的几种方法
两个字典A = {'a': 1, 'b': 2, 'c': 3}, B = {'b': 4, 'c': 6, 'd': 8} 要合并这两个字典,键值同则相加. 两个字典如果不考虑键相同则相加的话,可以使用d1.update(d2)可以很方便合并,但这样的后面的字典到中的值会覆盖字典d1中的值. >>> A = {'a': 1, 'b': 2} >>> B = {'a': 8, 'c': 3} >>> A.update(B) >>> A
-
Python中三元表达式的几种写法介绍
要介绍Python的三元表达式,可以先看看其他编程语言比如C,JAVA中应用: public class java { public static void main(String[] args){ int x = 100; int y = 101; int MAX = (x > y)? x: y; System.out.println("MAX:" + MAX); } } 上面的例子可以很好的说明了其他语言的格式: 判段的条件 ? 条件为真时的结果:条件为假时的结果 而在Pyt
-
Python按钮的响应事件详解
import sys from PyQt5 import QtWidgets from PyQt5.QtWidgets import QMainWindow from test import Ui_MainWindow from PyQt5.QtWidgets import QFileDialog class MyPyQT_Form(QMainWindow, Ui_MainWindow): def __init__(self): super(MyPyQT_Form, self).__init__
随机推荐
- window下注册服务的命令小结
- PHP文件下载类
- ruby ftp封装实例详解
- 用vbs列出机器上所有能调用的组件
- SQL Server、Oracle和MySQL判断NULL的方法
- js电信网通双线自动选择技巧
- window.location不跳转的问题解决方法
- PHP 获取目录下的图片并随机显示的代码
- codeigniter显示所有脚本执行时间的方法
- 在JavaScript里嵌入大量字符串常量的实现方法
- 微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
- Ajax——异步检查用户名是否存在示例
- WinForm实现同时让两个窗体有激活效果的特效实例
- Powershell直接脚本时出现无法加载文件因为禁止执行脚本
- jquery心形点赞关注效果的简单实现
- bootstrap select插件封装成Vue2.0组件
- IE:重新安置临时文件夹
- Android自定义封装banner组件
- 给c#添加SetTimeout和SetInterval函数
- DevExpress实现GridControl根据列选中一行