一、字典

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-字典】的更多相关文章

  1. 【DG】Oracle_Data_Guard官方直译

    [DG]Oracle Data Guard官方直译 1 Oracle Data Guard 介绍   Oracle Data Guard概念和管理10g版本2   Oracle Data Guard ...

  2. DVWA实验之Brute Force(暴力破解)- Low

    DVWA实验之Brute Force-暴力破解- Low     这里开始DVWA的相关实验~   有关DVWA环境搭建的教程请参考: https://www.cnblogs.com/0yst3r-2 ...

  3. Oracle错误览表

    Oracle 错误总结及问题解决 ORA     本文转自:https://www.cnblogs.com/zhangwei595806165/p/4972016.html  作者@承影剑 ORA-0 ...

  4. 字典:当索引不好用时 - 零基础入门学习Python025

    字典:当索引不好用时 让编程改变世界 Change the world by program 有天你想翻开牛津字典,查找"sadomasochism[ˌseɪdoʊ'mæsəkɪzəm]&q ...

  5. Javacript实现字典结构

    字典是一种用[键,值]形式存储元素的数据结构.也称作映射,ECMAScript6中,原生用Map实现了字典结构. 下面代码是尝试用JS的Object对象来模拟实现一个字典结构. <script& ...

  6. python 数据类型 ----字典

    字典由一对key:value 组成的 python中常用且重量级的数据类型 1. key , keys, values 字典由一对key:value 组成的 python中常用且重量级的数据类型 1. ...

  7. 增强版字典DictionaryEx

    代码 public class DictionaryEx<TKey, TValue> : IDictionary<TKey, TValue> { /// <summary ...

  8. python学习笔记(字符串操作、字典操作、三级菜单实例)

    字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...

  9. python之最强王者(8)——字典(dictionary)

    1.Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包 ...

  10. python序列,字典备忘

    初识python备忘: 序列:列表,字符串,元组len(d),d[id],del d[id],data in d函数:cmp(x,y),len(seq),list(seq)根据字符串创建列表,max( ...

随机推荐

  1. 39.css3----button按钮点击时出现蓝色边框

    css控制Button 按钮的点击时候出现蓝色边框http://www.inbeijing.org/archives/1139 Button 按钮的点击时候出现蓝色边框的问题 添加css属性,这样在点 ...

  2. node.js初识09

    1.node_module文件夹 如果你的require中没有写./,那么Node.js将该文件视为node_modules目录下的一个文件. 2.package.json文件 如果使用文件夹来统筹管 ...

  3. H5 dom元素保存为图片

    一.使用插件html2canvas:https://github.com/niklasvh/html2canvas 具体代码: 1.html <div class="test" ...

  4. 462. 最少移动次数使数组元素相等 II

    给定一个非空整数数组,找到使所有数组元素相等所需的最小移动数,其中每次移动可将选定的一个元素加1或减1. 您可以假设数组的长度最多为10000. 例如: 输入: [1,2,3] 输出: 2 说明: 只 ...

  5. Usefull Resources

    Sql Server Profiler 1. http://www.cnblogs.com/Fooo/archive/2013/02/19/2916789.html 2. http://5439255 ...

  6. SVN windows内修改日志内容(错误解决)

    在我的电脑是windows 7,使用TortoiseSVN客户端,选中代码目录,点击右键,选择<显示日志> 显示日志信息 修改原来的日志信息(在需要修改的版本的日志中点击鼠标右键,显示如下 ...

  7. 变量part2

    一 变量值具有三个特征:  1. id:变量值的唯一编号,内存地址不同id则不同  2. type:类型  3. value(值) #name='xia' #print(id(name)) #age= ...

  8. SpringMVC探究-----从HelloWorld开始

       1.SpringMVC简介 Spring MVC框架是有一个MVC框架,通过实现Model-View-Controller模式来很好地将数据.业务与展现进行分离. 它的设计是围绕Dispatch ...

  9. 虚拟机连不上网 Xshell连不上虚拟机

    以centos7 为例 1,确定network connection 为NAT 2, 打开网络连接中心 Control Panel\Network and Internet\Network Conne ...

  10. oracle函数,游标,视图使用总结

    oracle函数或者叫存储过程,在实际的开发过程中对于复杂的业务需求是非常有用的,非常有效率的也是非常好玩儿的一个技术点. 平常在开发过程中对于CRUD功能较多.一般SQL即可应付,大不了就是长一点而 ...