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小进度条显示代码
有的时候程序需要有进度条显示,比如说安装程序.下载文件等场合. 下面有一段小程序可达到效果 程序代码 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中的中文是个很头痛的问题,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写一个模拟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按钮的响应事件详解
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__
-
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中最大递归深度值的探讨
Python对递归函数设置是有默认值. 可以通过下面命令来查看设置的默认值 >>> import sys >>> sys.getrecursionlimit() 3000 查看该函数的帮助文件就更清晰了: >>> help(sys.getrecursionlimit) Help on built-in function getrecursionlimit in module sys: getrecursionlimit(...) getrecursio
-
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之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字符串通过'+'和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
随机推荐
- 用htc实现验证模块
- 图片上传之FileAPI与NodeJs
- angularJS 中input示例分享
- Tocat 下的日志配置参考代码
- BAT批处理中的字符串处理详解(字符串截取)
- jQuery中bind与live的用法及区别小结
- Android在JNI中使用ByteBuffer的方法
- Discuz 模板语句分析及知识技巧
- 实例展示使用Java压缩和解压缩7z文件的方法
- 开发人员需要知道的东西杂谈
- 如何获取SqlServer2005表结构(字段,主键,外键,递增,描述)
- 将MySQL查询结果按值排序的简要教程
- 使用Android Studio检测内存泄露(LeakCanary)
- jquery自定义插件——window的实现【示例代码】
- 利用js(jquery)操作Cookie的方法说明
- 详解Javascript中的Object对象
- C# listview 点击列头排序的实例
- 实例解析Android系统中的ContentProvider组件用法
- 获取一个数字的个位、十位、百位的函数代码
- Android使用 Retrofit 2.X 上传多文件和多表单示例
