【Python025-字典】
一、字典
1、创建和访问字典(字典是大括号表示,字典是映射类型)
语法类型:键:key,值:value,用冒号隔开
---
>>> dict1 = {'李宁':'一切皆有可能','耐克':'just do it','阿迪达斯':'Impossible is nothing','鱼C工作室':'编程改变世界'}
>>> print('鱼C工作室的口号是:',dict1['鱼C工作室']) #dict1['鱼C工作室']):加上的是键
鱼C工作室的口号是: 编程改变世界
2、尝试一下将数据(‘F’:70,'C':67,''h:104,'i':105,'s':115)创建为一个字典并访问‘C’对应的值?
>>> dict1={'F':70,'C':67,'h':104,'i':105,'s':115}
>>> print(dict1['C'])
67
>>>
-----------------------------------------
>>> dict2 = dict((('F', 70), ('i',105), ('s',115), ('h',104), ('C',67)))
>>> dict2['C']
67
>>>
3、创建字典的集中方式:
>>> a = dict(one=1, two=2, three=3)
>>> b = {'one': 1, 'two': 2, 'three': 3}
>>> c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
>>> d = dict([('two', 2), ('one', 1), ('three', 3)])
>>> e = dict({'three': 3, 'one': 1, 'two': 2})
打印出来的结果都是:{'one': 1, 'two': 2, 'three': 3}
4、字典和字符串的结合:
data = "1000,小甲鱼,男"
MyDict = {}
# 还记得字符串的分割方法吧,别学过就忘啦^_^
(MyDict['id'], MyDict['name'], MyDict['sex']) = data.split(',')
print("ID: " + MyDict['id'])
print("Name: " + MyDict['name'])
print("Sex " + MyDict['sex'])
'''
执行结果:
ID: 1000
Name: 小甲鱼
Sex 男
'''
split()函数:
Python中有split()和os.path.split()两个函数,具体作用如下:
split():拆分字符串。通过制定分隔符对字符串进行切片,并返回分割后的字符串列表(list)。如:split(‘,’)通过,号分隔
os.path.split():按照路径将文件名和路径分隔开
一、函数说明
1、split()函数
语法:str.split(str="",num=string.count())[n]
参数说明:
str:表示分隔符,默认是空格,但是不能为空(‘’)。若字符串中没有分隔符,则把整个字符串作为列表的一个元素
num:表示分隔次数。如果存在参数num,则仅分隔成num+1个子字符串,并且每一个子字符串可以赋给新的变量
[n]:表示选择第几个切片
注意:当使用空格作为分隔符时,对于中间为空的项会自动忽略
2、os.path.split()函数:
语法:os.path.split('PATH')
参数说明:
1、PATH指一个文件的全路径作为参数
2、如果给出的是一个目录和文件名,则输出路径和文件名
3、如果给出的是一个目录名,则输出路径和为空的文件名
二、实例
1、常用实例
u = "www.yizhibo.com"
#使用默认分隔符
>>> u.split()
['www.yizhibo.com']
#使用'.'分隔符,并且分隔1次
>>> u.split('.',1)
['www', 'yizhibo.com']
#分隔两次
>>> u.split('.',2)
['www', 'yizhibo', 'com']
#分隔2次,并取序列为1的项
>>> u.split('.',2)[1]
'yizhibo'
#分隔最多次(实际与不加num参数相同)
>>> u.split('.',-1)
['www', 'yizhibo', 'com']
#分隔两次,并把分割后的三部分保存到三个文件
>>> u1,u2,u3=u.split('.',2)
>>> u1
'www'
>>> u2
'yizhibo'
>>> u3
'com'
2、去掉换行符
>>> c = '''say
hello
baby'''
>>> c
'say\nhello\nbaby'
>>> c.split('\n')
['say', 'hello', 'baby']
3、一个超级好的例子:
>>> str="hello boy<[www.doiido.com]>byebye"
>>> str.split("[")[1].split("]")[0]
'www.doiido.com'
>>> str.split('[')[1].split(']')[0]
'www.doiido.com'
>>> str.split("[")[1].split("]")[0].split('.')
['www', 'doiido', 'com']
三、动手题:
1、尝试利用字典的特性编写一个 通讯录程序,功能如图:
具体代码:
print("""
|--- 欢迎进入通讯录程序 ---|
|--- 1:查询联系人资料 ---|
|--- 2:插入新的联系人 ---|
|--- 3:删除已有联系人 ---|
|--- 4:退出通讯录程序 ---|""")
key = 5
dict1 = {'尘封':'18088888888'}
while key!=4:
key = int(input('请输入相关的指令代码:'))
if key == 1:
temp = input("请输入联系人的姓名:")
if temp in dict1:
print('%s:%s'%(temp,dict1[temp]))
else:
temp1 = input("请输入联系人电话:")
dict1[temp]=temp1
print('添加的联系人资料为:%s --> %s'%(temp,dict1[temp]))
continue
elif key ==2:
temp = input("请输入联系人的姓名:")
if temp in dict1:
print('您输入的姓名已在通讯录中存在 -->%s:%s'%(temp,dict1[temp]))
x = input("是否修改用户资(YES/NO)")
if x == 'YES':
tel = input("请输入用户联系电话:")
dict1.update({temp:tel})
print('修改后的联系人资料为 -->%s:%s'%(temp,dict1[temp]))
else:
continue
else:
temp1 = input("请输入联系人电话:")
dict1[temp]=temp1
print('添加的联系人资料为:%s --> %s'%(temp,dict1[temp]))
elif key ==3:
temp = input("请输入要删除的联系人姓名:")
if temp in dict1:
flag = input("确定要删除此联系人?(YES/NO)")
if flag == 'YES':
del(dict1[temp])
print('联系人 %s 删除成功!'%temp)
else:
continue
else:
print('%s 不在通讯录中!'%temp)
elif key ==4:
print("|--- 感谢使用通讯录程序 ---|")
break
==================== RESTART: /Users/wufq/Desktop/通讯录.py ====================
|--- 欢迎进入通讯录程序 ---|
|--- 1:查询联系人资料 ---|
|--- 2:插入新的联系人 ---|
|--- 3:删除已有联系人 ---|
|--- 4:退出通讯录程序 ---|
请输入相关的指令代码:1
请输入联系人的姓名:尘封
尘封:18088888888
请输入相关的指令代码:2
请输入联系人的姓名:尘封
您输入的姓名已在通讯录中存在 -->尘封:18088888888
是否修改用户资(YES/NO)YES
请输入用户联系电话:\15624963195
修改后的联系人资料为 -->尘封:15624963195
请输入相关的指令代码:3
请输入要删除的联系人姓名:尘封
确定要删除此联系人?(YES/NO)YES
联系人 尘封 删除成功!
请输入相关的指令代码:4
|--- 感谢使用通讯录程序 ---|
>>>
==================== RESTART: /Users/wufq/Desktop/通讯录.py ====================
【Python025-字典】的更多相关文章
- 【DG】Oracle_Data_Guard官方直译
[DG]Oracle Data Guard官方直译 1 Oracle Data Guard 介绍 Oracle Data Guard概念和管理10g版本2 Oracle Data Guard ...
- DVWA实验之Brute Force(暴力破解)- Low
DVWA实验之Brute Force-暴力破解- Low 这里开始DVWA的相关实验~ 有关DVWA环境搭建的教程请参考: https://www.cnblogs.com/0yst3r-2 ...
- Oracle错误览表
Oracle 错误总结及问题解决 ORA 本文转自:https://www.cnblogs.com/zhangwei595806165/p/4972016.html 作者@承影剑 ORA-0 ...
- 字典:当索引不好用时 - 零基础入门学习Python025
字典:当索引不好用时 让编程改变世界 Change the world by program 有天你想翻开牛津字典,查找"sadomasochism[ˌseɪdoʊ'mæsəkɪzəm]&q ...
- Javacript实现字典结构
字典是一种用[键,值]形式存储元素的数据结构.也称作映射,ECMAScript6中,原生用Map实现了字典结构. 下面代码是尝试用JS的Object对象来模拟实现一个字典结构. <script& ...
- python 数据类型 ----字典
字典由一对key:value 组成的 python中常用且重量级的数据类型 1. key , keys, values 字典由一对key:value 组成的 python中常用且重量级的数据类型 1. ...
- 增强版字典DictionaryEx
代码 public class DictionaryEx<TKey, TValue> : IDictionary<TKey, TValue> { /// <summary ...
- python学习笔记(字符串操作、字典操作、三级菜单实例)
字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...
- python之最强王者(8)——字典(dictionary)
1.Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包 ...
- python序列,字典备忘
初识python备忘: 序列:列表,字符串,元组len(d),d[id],del d[id],data in d函数:cmp(x,y),len(seq),list(seq)根据字符串创建列表,max( ...
随机推荐
- HTTP参数污染【转】
HTTP参数污染注入源于网站对于提交的相同的参数的不同处理方式导致. 例如: www.XX.com/a?key=ab&key=3 如果服务端返回输入key的值,可能会有 一: ab 二:3 三 ...
- C++ new运算符
new 分配的数据类型:内置数据类型.自定义数据类型. 如果不成功,则 new 将返回零或引发异常:编写自定义异常处理例程并调用 _set_new_handler运行库函数(以您的函数名称作为其参数) ...
- LeetCode119.杨辉三角II
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 3 输出: [1,3,3,1] 进阶: 你可以优化你的算法到 O ...
- Ajax-创建ajax
UNSENT : 未发送,刚开始创建完成AJAX对象,默认的状态就是0 OPENED : 已打开,执行了xhr.open之后状态变为1 HEADERS_RECEIVED :响应头信息已经成功的返回并且 ...
- EL语言表达式 (二)【EL对数据的访问】
一.访问方式: EL中访问数据和Java中访问数组的方式相同,即可以通过“[]”和“.”运算符进行访问.而且两种形式是等价的.如: 访问JavaBean对象userInfo中的id属性,可以写成下面两 ...
- awk命令学习(1)
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...
- python 文件路径名,文件名,后缀名的操作
需要使用路径名来获取文件名,目录名,绝对路径等等. 使用os.path 模块中的函数来操作路径名.下面是一个交互式例子来演示一些关键的特性: >>> import os >&g ...
- 20165215 2017-2018-2《Java程序设计》第一周学习总结
20165215 2017-2018-2 <Java程序设计>第一周学习总结 教材学习内容总结 跟随网课学习了<Java2 实用教程>的第一章,进行了基础的编译练习 在Ubun ...
- linux基础命令---显示进程ps
ps ps指令可以显示系统中当前进程的信息,它的输出结果是高度可定制的.如果您希望重复更新所选内容和显示的信息,请使用top(1)代替. 请注意,“ps-aux”与“ps aux”不同.POSIX和U ...
- Linux基础命令---验证组文件grpck
grpck grpck指令可以验证组文件“/etc/group”和“/etc/gshadow”的完整性.检查的内容包括:正确的字段数.唯一有效的组名称.有效的组标识符.成员和管理员的有效列表.“/et ...