python解决字典中的值是列表问题的方法
问题:查找一些英文词在哪些小句中出现了,当然是用python来实现,当然是用字典,但是怎么让一个key对应一个 类型为列表的value,直接用列表的append()是不行的,比如dic[key].append(value),因为解释器并不知道 dic[key]的类型,当时赶时间,用了一个折衷的方案,就是先用value连成一个str,最后用str.split()作一个转换,生成一个列表.
看了python cookbook,上面正好有一个recipe讲到如何处理这样的问题,好了,揭晓答案吧!
(1)value中允许有重复项.
dic = {}
dic.setdefault(key,[]).append(value)
#如:
d1.setdefault('bob_hu',[]).append(1)
d1.setdefault('bob_hu',[]).append(2)
print d1['bob_hu'] # [1,2]
(2)value中无重复项.
dic = {}
dic.setdefault(key,{})[value] = 1
#如:
d1.setdefault('bob',{})['f'] = 1
d1.setdefault('bob',{})['h'] = 1
d1.setdefault('bob',{})['f'] = 1
print d1['bob'] #{'h': 1, 'f': 1}
相关推荐
-
完美解决python遍历删除字典里值为空的元素报错问题
exam = { 'math': '95', 'eng': '96', 'chn': '90', 'phy': '', 'chem': '' } 使用下列遍历的方法删除: 1. for e in exam: 2. if exam[e] == '': 3. del exam[e] 结果出现下列错误,怎么解决: Traceback (most recent call last): File "Untitled.py", line 3, in <module> for e in
-
Python中遍历字典过程中更改元素导致异常的解决方法
先来回顾一下Python中遍历字典的一些基本方法: 脚本: #!/usr/bin/python dict={"a":"apple","b":"banana","o":"orange"} print "##########dict######################" for i in dict: print "dict[%s]=" % i,
-
python实现从字典中删除元素的方法
本文实例讲述了python实现从字典中删除元素的方法.分享给大家供大家参考.具体分析如下: python的字典可以通过del方法进行元素删除,下面的代码详细演示了这一过程 # Create an empty dictionary d = {} # Add an item d["name"] = "Fido" assert d.has_key("name") # Delete the item del d["name"] ass
-
解决Python 遍历字典时删除元素报异常的问题
错误的代码① d = {'a':1, 'b':0, 'c':1, 'd':0} for key, val in d.items(): del(d[k]) 错误的代码② -- 对于Python3 d = {'a':1, 'b':0, 'c':1, 'd':0} for key, val in d.keys(): del(d[k]) 正确的代码 d = {'a':1, 'b':0, 'c':1, 'd':0} keys = list(d.keys()) for key, val in keys: d
-
python解决字典中的值是列表问题的方法
问题:查找一些英文词在哪些小句中出现了,当然是用python来实现,当然是用字典,但是怎么让一个key对应一个 类型为列表的value,直接用列表的append()是不行的,比如dic[key].append(value),因为解释器并不知道 dic[key]的类型,当时赶时间,用了一个折衷的方案,就是先用value连成一个str,最后用str.split()作一个转换,生成一个列表. 看了python cookbook,上面正好有一个recipe讲到如何处理这样的问题,好了,揭晓答案吧! (1
-
Python字典中的值为列表或字典的构造实例
1.值为列表的构造实例 dic = {} dic.setdefault(key,[]).append(value) *********示例如下****** >>dic.setdefault('a',[]).append(1) >>dic.setdefault('a',[]).append(2) >>dic >>{'a': [1, 2]} 2.值为字典的构造实例 dic = {} dic.setdefault(key,{})[value] =1 *******
-
Python 从列表中取值和取索引的方法
如下所示: name_list["zhangsan","lisi","wangwu"] #1.取值 print(name_list[0]) print(name_list[1]) print(name_list[2]) #2.取索引 print(name_list.index("lisi")) #3.修改 name_list[1]="李四" #4.增加数据 name_list.append("王小
-
python 字典中取值的两种方法小结
如下所示: a={'name':'tony','sex':'male'} 获得name的值的方式有两种 print a['name'],type(a['name']) print a.get('name'),type(a.get('name')) 发现这两个结果完全一致,并没有任何的差异. 怎么选择这两个不同的字典取值方式呢? 如果字典已知,我们可以任选一个,而当我们不确定字典中是否存在某个键时,我之前的做法如下 if 'age' in a.keys(): print a['age'] 因为不先
-
Python在字典中获取带权重的随机值实现方式
一.前言 python在数组中随机取值有现成的方法,但是要给每个随机值被取到的概率加权重的话,可以参考下面这个方法 二.实现方式 import random def random_with_weight(data_dict): sum_wt = sum(data_dict.values()) # 计算权重和 sum_wt ra_wt = random.uniform(0, sum_wt) # 随机获取 0-sum_wt 之间的一个浮点数 ra_wt cur_wt = 0 for key in d
-
python 根据字典的键值进行排序的方法
1.利用key排序 d = {'d1':2, 'd2':4, 'd4':1,'d3':3,} for k in sorted(d): print(k,d[k]) d1 2 d2 4 d3 3 d4 1 2.利用value排序:__getitem__ d = {'d1':2, 'd2':4, 'd4':1,'d3':3,} for k in sorted(d,key=d.__getitem__): print(k,d[k]) d4 1 d1 2 d3 3 d2 4 反序:reverse=True
-
python 创建一个保留重复值的列表的补码
给定列表a = [1,2,2,3],其子列表b = [1,2]以这样一种排序(a)==排序(b补码)的方式找到一个补全b的列表.在上面的例子中,补码将是[2,3]的列表. 使用列表解析是很诱人的: complement = [x for x in a if x not in b] 或设置: complement = list(set(a) - set(b)) 然而,这两种方式都将返回complement = [3]. 一个明显的做法是: complement = a[:] for element
-
Python 互换字典的键值对实例
1.zip dic = {'a':1, 'b':2, 'c':3} dic_new = dict(zip(dic.values(), dic.keys())) print(dic_new) # {1: 'a', 2: 'b', 3: 'c'} 2.循环 dic = {'a':1, 'b':2, 'c':3} dic_new = {} for key, val in dic.items(): dic_new[val] = key print(dic_new) # {1: 'a', 2: 'b',
-
python 解决selenium 中的 .clear()方法失效问题
最近在使用selenium做一个数字货币的自动化脚本时,遇到一个问题就是okex网站的input使用clear()方法居然无法清空,但是后来试了好多次发现方法是可以使用的,而且这个网站修改input的value也没用,必须在文本框里修改才行,本次的目的就是要清除输入框的默认值,然而clear()没有反应,最后还是用了别的方法解决了问题,那就是使用鼠标双击事件,全选后输入内容. from selenium.webdriver.common.action_chains import ActionCh
-
使用Python获取字典键对应值的两种方法
目录 当知道字典的键时: 当不知道字典的键时: 附:字典dic最大值对应的键 总结 有两种方法 当知道字典的键时: unit_rooms={ 3:{301:[1,80],302:[1,80],303:[2,90],304:[2,90]}, 4:{401:[1,80],402:[1,80],403:[2,90],404:[2,90]}, 5:{501:[1,80],502:[1,80],503:[2,90],504:[2,90]} } for i in range(3,6): rooms=unit
随机推荐
- AngularJS内置指令
- SWT(JFace)小制作 BugTracker
- 一份很全的路由器默认初始密码集合
- Python的Flask框架中实现简单的登录功能的教程
- IOS 自定义UICollectionView的头视图或者尾视图UICollectionReusableView
- JS中的public和private对象,即static修饰符
- IE iframe的onload方法分析小结
- PHP面向对象程序设计之类常量用法实例
- JavaScript 动态生成方法的例子
- SpringMVC返回json数据的三种方式
- asp仿php的一些函数分享
- 计时器的time_t和clock_t 的两种实现方法(推荐)
- win2008 R2 WEB环境配置之MYSQL 5.6.22安装版安装配置方法
- jQuery获取URL请求参数的方法
- 深入剖析javascript中的exec与match方法
- 基于jquery实现点击左右按钮图片横向滚动
- jQuery实现的placeholder效果完整实例
- 忘记Mysql的密码的处理办法
- Android中使用自定义ViewGroup的总结
- Android UI 实现老虎机详解及实例代码