python教程-(四)当索引行不通时(python字典)

一、创建和使用字典

1.函数dict

#字典表示方式如下
>>> phonebook = {'tom':'18616271234',"Jim":"18612345678"}
>>> phonebook['tom']
'18616271234'

#函数dict
>>> items = [('name','tom'),("age","20")]
>>> d = dict(items)
>>> d
{'name': 'tom', 'age': '20'}

>>> d = dict(name="tom",age="20")
>>> d
{'name': 'tom', 'age': '20'}

2.基本的字典操作

len(d) 返回字典的项数

d[k] 返回键k对应的值

d[k]=v 将值v赋予键k

del d[k] 删除键为k的项

k in d 检查字典中是否包含键k

>>> wolaile={"name":"Tom","age":26,"address":"shanghai"}
>>> wolaile
{'name': 'Tom', 'age': 26, 'address': 'shanghai'}
>>> wolaile["address"]
'shanghai'
>>> wolaile["address"]="beijing"
>>> wolaile
{'name': 'Tom', 'age': 26, 'address': 'beijing'}
>>> wolaile["sex"]="man"
>>> wolaile
{'name': 'Tom', 'age': 26, 'address': 'beijing', 'sex': 'man'}
>>> del wolaile["sex"]
>>> wolaile
{'name': 'Tom', 'age': 26, 'address': 'beijing'}
>>> "age" in wolaile
True
>>> "sex" in wolaile
False
#字典示例
people={
        "Tom":{"phone":1234, "addr":"shanghai"},
        "Jim":{"phone":5678, "addr":"beijing"},
        "Lily":{"phone":1590, "addr":"shenzhen"}

    }
labels={
        "phone":"phone number",
        "addr":"address"
    }
name=input("Name: ")
request=input("phone number (p) or address (a)?")

if request == 'p' : key='phone'
if request == 'a' : key = 'addr'

if name in people: print("{}'s {} is {}".format(name, labels[key], people[name][key]))

3.将字符串格式设置功能用于字典

>>> phonebook={"Jim":"123123","Tom":"121231"}
>>> "Tom's phone number is {Tom}".format_map(phonebook)
"Tom's phone number is 121231"
>>> template="""<html><head><title>{title}</title></head><body><h1>{title}</h1><p>{text}</p></body>"""
>>> data={"title":"wolaile","text":"woyoulaile"}
>>> template.format_map(data)
'<html><head><title>wolaile</title></head><body><h1>wolaile</h1><p>woyoulaile</p></body>'

4.字典方法

#clear 清空
>>> x={}
>>> y=x
>>> x["key"]="value"
>>> x
{'key': 'value'}
>>> y
{'key': 'value'}
>>> x={}
>>> x
{}
>>> y
{'key': 'value'}
#使用clear方法后
>>> x = {}
>>> y = x
>>> x
{}
>>> y
{}
>>> x["key"]="value"
>>> x
{'key': 'value'}
>>> y
{'key': 'value'}
>>> x.clear()
>>> x
{}
>>> y
{}
#copy和deepcopy
#copy浅复制
>>> x = {"username":"tom", "extendinfo":["age","salary","sex"]}
>>> x
{'username': 'tom', 'extendinfo': ['age', 'salary', 'sex']}
>>> y = x.copy()
>>> y
{'username': 'tom', 'extendinfo': ['age', 'salary', 'sex']}
>>> y["username"] = "Jim"
>>> y["extendinfo"].remove("sex")
>>> y
{'username': 'Jim', 'extendinfo': ['age', 'salary']}
>>> x
{'username': 'tom', 'extendinfo': ['age', 'salary']}

#deepcopy深复制
>>> from copy import deepcopy
>>> d={}
>>> d["username"] = ['Lucy','Lily']
>>> d
{'username': ['Lucy', 'Lily']}
>>> c = d.copy()
>>> dc = deepcopy(d)
>>> d["username"].append("Tom")
>>> c
{'username': ['Lucy', 'Lily', 'Tom']}
>>> dc
{'username': ['Lucy', 'Lily']}
>>> 
#fromkeys 创建一个新字典,包含指定的key,每个key默认值是None
>>> {}.fromkeys(["username","phone"])
{'username': None, 'phone': None}
>>> dict.fromkeys(["username","phone"])
{'username': None, 'phone': None}
>>> dict.fromkeys(["username","phone"],"x")
{'username': 'x', 'phone': 'x'}
#items 返回一个包含所有字典项的列表
>>> d={"title":"CTO","username":"Jim","addr":"shanghai"}
>>> d.get("title")
'CTO'
>>> d.get("title","unknown")
'CTO'
>>> d.get("salary","unknown")
'unknown'
>>> d.items()
dict_items([('title', 'CTO'), ('username', 'Jim'), ('addr', 'shanghai')])
>>> it = d.items()
>>> len(it)
3
>>> ("title","CTO") in it
True
>>> d["username"]="Lucy"
>>> it
dict_items([('title', 'CTO'), ('username', 'Lucy'), ('addr', 'shanghai')])
>>> list(d.items())
[('title', 'CTO'), ('username', 'Lucy'), ('addr', 'shanghai')]
#keys方法返回字典的所有key
>>> d
{'title': 'CTO', 'username': 'Lucy', 'addr': 'shanghai'}
>>> d.keys()
dict_keys(['title', 'username', 'addr'])
>>> ki = d.keys()
>>> ki
dict_keys(['title', 'username', 'addr'])

#pop方法,删除指定的键值对
>>> d.pop("title")
'CTO'
>>> d
{'username': 'Lucy', 'addr': 'shanghai'}
>>> 
#setdefault方法,如果键不存在,则返回指定的值,如果键存在,返回其值
>>> d
{'username': 'Lucy', 'addr': 'shanghai'}
>>> d.setdefault("username")
'Lucy'
>>> d
{'username': 'Lucy', 'addr': 'shanghai'}
>>> d.setdefault("age",18)
18
>>> d
{'username': 'Lucy', 'addr': 'shanghai', 'age': 18}

#update 更新指定的key的value
>>> d
{'username': 'Lucy', 'addr': 'shanghai', 'age': 18}
>>> e={"addr":"beijing"}
>>> d.update(e)
>>> d
{'username': 'Lucy', 'addr': 'beijing', 'age': 18}
>>> 

#values 返回字段的value值
>>> d
{'username': 'Lucy', 'addr': 'beijing', 'age': 18}
>>> d.values()
dict_values(['Lucy', 'beijing', 18])
>>> 

 

转载于:https://www.cnblogs.com/share2perfect/p/10963064.html

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随与我联系,我会及为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随与我联系,我会及解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值