博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python dict 方法
阅读量:2454 次
发布时间:2019-05-10

本文共 4921 字,大约阅读时间需要 16 分钟。

说字典方法之前,我们先来说几个巧用字典取值的方法

1:

d = {

'name':'zhang','age':25,'job':'IT'}
### 第一种方法
for key1in d:
   
print(key1,d[key1])
####  输出结果
age 25
job IT
name zhang

 

2:

d = {
'name':'zhang','age':25,'job':'IT'}###  第二种方法for k,v in d.items():    print("dict[%s] = " %k,v)###  输出结果dict[job] =  ITdict[age] =  25dict[name] =  zhang

 

dict 类方法,不再细说

class dict(object):    """    dict() -> new empty dictionary    dict(mapping) -> new dictionary initialized from a mapping object's        (key, value) pairs    dict(iterable) -> new dictionary initialized as if via:        d = {}        for k, v in iterable:            d[k] = v    dict(**kwargs) -> new dictionary initialized with the name=value pairs        in the keyword argument list.  For example:  dict(one=1, two=2)    """

 

2:clear ---: 清空,返回空列表’{}’

def clear(self): # real signature unknown; restored from __doc__    """ D.clear() -> None.  . """    pass

使用方法:

d = {
'name':'zhang','age':25,'job':'IT'}d1 = d.clear()print(d)###  输出结果{}

 

3:copy ----: 浅拷贝

def copy(self): # real signature unknown; restored from __doc__    """ D.copy() ->  """    pass

使用方法:

d = {
'name':'zhang','age':25,'job':'IT'}d1 = d.copy()print(d1)###  输出结果{
'name': 'zhang', 'job': 'IT', 'age': 25}

 

4: fromkeys ---:创建并返回一个新字典,以seq中的元素做该字典的键,val做该字典中所有键对应的初始值

def fromkeys(*args, **kwargs): # real signature unknown    """ Returns a new dict with keys from iterable and values equal to value. """    pass

使用方法:

print(d1.fromkeys('name','zhang'))###  输出结果{
'n': 'zhang', 'm': 'zhang', 'a': 'zhang', 'e': 'zhang'}

 

5: get ---: 获取值;对字典dict中的键key,返回它对应的值value,如果字典中不存在此键,则返回default值

def get(self, k, d=None): # real signature unknown; restored from __doc__    """ D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None. """    pass

使用方法:

d = {
'name':'zhang','age':25,'job':'IT'}#d1 = {}#print(d1.fromkeys('name','zhang'))print(d.get('name'))print(d.get('Height'))###  输出结果zhangNone

 

6: items ---: 返回一个包含字典中键、值对元组的列表

def items(self): # real signature unknown; restored from __doc__    """ D.items() -> a set """    pass

使用方法:

d = {
'name':'zhang','age':25,'job':'IT'}print(d.items())###  输出结果dict_items([('name', 'zhang'), ('job', 'IT'), ('age', 25)])

 

7: key ---: 返回所有的key

def keys(self): # real signature unknown; restored from __doc__    """ D.keys() -> a set-like object providing a view on D's keys """    pass

使用方法:

d = {
'name':'zhang','age':25,'job':'IT'}print(d.keys())###  输出结果dict_keys(['name', 'age', 'job'])

 

8:values ---: 返回所有的value

def values(self): # real signature unknown; restored from __doc__    """ D.values() -> an object providing a view on D's values """    pass

使用方法:

d = {
'name':'zhang','age':25,'job':'IT'}print(d.values())###  输出结果dict_values(['IT', 25, 'zhang'])

 

9: pop ---: 删除指定的key,并返回相应的值,如果没有此key,将报错

def pop(self, k, d=None): # real signature unknown; restored from __doc__    """    D.pop(k[,d]) -> v,.    If key is not found, d is returned if given, otherwise KeyError is raised    """    pass

使用方法:

d = {
'name':'zhang','age':25,'job':'IT'}d1 = d.pop('name')print(d)print(d1)###  输出结果{
'age': 25, 'job': 'IT'}zhang

 

10: popitem --: 随机删除字典中的一对键值

def popitem(self): # real signature unknown; restored from __doc__    """    D.popitem() -> (k, v), remove and return some (key, value) pair as a    2-tuple; but raise KeyError if D is empty.    """    pass

使用方法:

d = {
'name':'zhang','age':25,'job':'IT'}print(d)print(d.popitem())print(d)###  输出结果{
'age': 25, 'name': 'zhang', 'job': 'IT'}('age', 25){
'name': 'zhang', 'job': 'IT'}

 

11: setdefault ---: 如果key 值存在则返回其值,如果不存在则添加此key ,默认以None作为其value

def setdefault(self, k, d=None): # real signature unknown; restored from __doc__    """ D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D """    pass

使用方法:

d = {
'name':'zhang','age':25,'job':'IT'}print(d.setdefault('name'))d1 = d.setdefault(('Height'))print(d)###  输出结果zhang{
'name': 'zhang', 'job': 'IT', 'Height': None, 'age': 25}

 

12: update ---: 更新

def update(self, E=None, **F): # known special case of dict.update    """    D.update([E, ]**F) -> None.  Update D from dict/iterable E and F.    If E is present and has a .keys() method, then does:  for k in E: D[k] = E[k]    If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v    In either case, this is followed by: for k in F:  D[k] = F[k]    """    pass

使用方法:

d = {
'name':'zhang','age':25,'job':'IT'}d1 = {
'Height':'170'}d3 = d.update(d1)print(d)###  输出结果{
'Height': '170', 'age': 25, 'name': 'zhang', 'job': 'IT'}

 

 

 

测试小程序

有如下值集合[11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。

即: {'k1': 大于66 , 'k2':小于66}

 

心得:实现方法可能有很多,请吐槽

l = [11,22,33,44,55,66,77,88,99,90,]d = {}l1 = []l2 = []for i in l:    if i > 66:        l2 = l1.append(i)        d1 = d.setdefault('key1',l1)    if i < 66:        l3 = l2.append(i)        d1 = d.setdefault('key2',l2)print(d)####  输出结果{
'key1': [77, 88, 99, 90], 'key2': [11, 22, 33, 44, 55]}

转载地址:http://sedhb.baihongyu.com/

你可能感兴趣的文章
perl子例程_子例程签名在Perl 6中如何工作
查看>>
开源 js图形_年度计算机图形会议鼓励使用开源
查看>>
多步骤建立镜像_通过四个步骤建立更多可信赖的团队
查看>>
linux中top命令_在Linux中使用top命令的提示
查看>>
管理工具 tools不可用_赶紧为管理员准备的10种杀手tools工具
查看>>
sysadmin默认密码_sysadmin的SELinux指南:42个主要问题的答案
查看>>
sysadmin默认密码_sysadmin的Ansible指南:如何简化任务
查看>>
linux开源游戏_适用于Linux的5个开源策略和模拟游戏
查看>>
开源语法解释器_抓住机会解释开源
查看>>
sonic pi_前5名:Linux,Sonic Pi,LibreOffice等
查看>>
owncloud_本周热门文章5:ownCloud创始人专访,Raspberry Pi上的Docker等
查看>>
前5名:来自Docker CEO的一句话,来自Scratch的Linux等
查看>>
开源意义_有用的陌生人和开源的意义
查看>>
最佳 开源 人脸识别算法_2014年最佳开源教程
查看>>
foss测试_2014年FOSS十大法律发展
查看>>
本周最热门的5篇文章:Raspberry Pi A +,Ansible和Jen的Linux历程
查看>>
owncloud_一周前五篇文章:Linux理念,ownCloud集成等
查看>>
最佳 开源 人脸识别算法_本周最佳5篇文章:今年最佳开源,以及更多
查看>>
firefox 开源_一周最热门的5篇文章:移动版Firefox OS和年度开源奇迹
查看>>
18年开源前端框架排名_2014年排名前20位的开源故事
查看>>