zoukankan      html  css  js  c++  java
  • 一天快速入门Python语法基础之字典

    #一、使用字典
    #1.字典的定义
    #在python中,字典是一系列键值对,每个键都与一个值相关联,可以使用键来访问与之相关联的值,
    #与键相关联的值可以是数字、字符串、列表、乃至字典。可将任何Python对象用作字典中的值。
    #键和值之间用逗号分隔,在字典中想存储多少个键-值都可以
    #一些坦克,它们的颜色和分数都不同
    tank_0={'color':'green','points':5}  #color就是个键,green就是对应的值
    
    #2.访问字典中的值
    tank_0={'color':'green','points':5}
    print(tank_0['color'])
    print(tank_0['points'])
    #如果你消灭这个坦克,可以获得其分数
    my_points=tank_0['points']
    print("你获得的分数"+str(my_points))
    
    #3.添加键-值对
    #字典是一种动态结构,可随时在其中添加键-值对。
    #要在tank_1中添加 横纵坐标
    tank_1={ }
    tank_1['color']='red'
    tank_1['points']=10
    tank_1['x_position']=0
    tank_1['y_position']=25
    print(tank_1)
    #使用字典来存储用户提供的数据或编写能自动生成大量键-值对的代码,通常需要先定一个空字典
    
    #4.修改字典中的值
    #需将tank_0的颜色改为蓝色
    tank_0={'color':'green','points':5}
    print(tank_0['color'])
    tank_0['color']='blue'
    print("坦克0的新颜色"+tank_0['color'])
    #对一个以不同速度移动的坦克的位置进行追踪
    #为此我们先存储该坦克的当前速度,并据此确定坦克将向右移动多远
    tank_2={'color':'yellow','x_position':20,'y_position':30,'speed':'medium'}
    #向右移动坦克
    #根据坦克当前速度决定其移动多远
    if tank_2['speed']=='slow':
        x_increment=1
    elif tank_2['speed']=='medium':
        x_increment=2
    else:
        x_increment=3
    tank_2['x_position']=tank_2['x_position']+x_increment
    print("新位置:"+str(tank_2['x_position']))
    
    #5.删除键-值对
    #用del语句删除键-值对,删除的键-值对永远消失
    tank_0={'color':'green','points':5}
    del tank_0['points']
    print(tank_0)
    
    #二、遍历字典
    #1.遍历所有键-值对
    user={'username':'haha','sex':'man','truename':'Tom'}
    for key,value in user.items(): #方法item返回的是一个键-值对列表
        print(key)
        print(value)
    #即便遍历字典时,键-值对的返回顺序也与存储顺序不同。Python不关心键值的存储顺序,只跟踪键和值之间的联系
    
    #2.遍历字典中的所有键
    user={'username':'haha','sex':'man','truename':'Tom'}
    for key in user.keys(): #提取字典user中的所有键,并依次将他们存储到变量key中
        print(key)
    #遍历字典是会默认遍历所有的键,因此for key in user.keys(): 可以替换为for key in user: 输出将不变
    
    #3.按顺序遍历字典中的所有键
    languages={'tom':'python','phil':'java','robin':'c','jack':'ruby'}
    for name in sorted(languages.keys()):
        print(name.title())
    
    #4.遍历字典中的所有值
    #如果你只想要字典中包含的值,可使用values()方法,它返回一个值列表,而不包含任何键
    languages={'tom':'python','phil':'java','robin':'c','jack':'ruby'}
    for value in languages.values():
        print(value.title())
    #这种方法提取字典中的值,而没有考虑是否重复,当涉及大量重复项时,为剔除重复项,可使用集合set
    languages={'tom':'python','phil':'java','robin':'c','jack':'python'}
    for value in set(languages.values()):
        print(value.title())
    
    
    #三、嵌套
    #1.字典列表
    #字典tank_0包含一个坦克的各种信息,但无法存储其他坦克的信息,
    #办法是创建一个坦克列表,其中每个坦克都是一个字典,
    tank_0={'color':'green','points':5}
    tank_1={'color':'red','points':15}
    tank_2={'color':'blue','points':25}
    tanks=[tank_0,tank_1,tank_2]
    for tank in tanks:
        print(tank)
    
    #坦克不止三个,且每个坦克都使用代码自动生成
    #创建一个用于存储坦克的空列表
    tanks=[ ]
    #创建30个绿色坦克
    for tank_number in range(30):
        new_tank={'color':'green','points':5,'speed':'slow'}
        tanks.append(new_tank)
    #显示前5个坦克
    for tank in tanks[:5]:
        print(tank)
    print("...")
    #显示共创建了多少坦克
    print("总共"+str(len(tanks)))
    
    #2.在字典中存储列表
    #drink饮料包含两方面信息:包装材料,和配料列表
    drink={
        'package':'plastic',
        'ingredient':['water','apple']
        }
    print(drink)
    #3.在字典中存储字典
    users={
        'username_1':{
            'first':'tom',
             'last':'guo',
            'address':'beijing'
        },
        'username_2':{
            'first':'jack',
            'last':'li',
            'address':'shanghai'
        }
    }

    参考:《Python编程:从入门到实践》,作者Eric Matthes,译者袁国忠,由人民邮电出版社于2016年7月出版

    本博客为博主的学习笔记,不作任何商业用途。
  • 相关阅读:
    NodeJS学习笔记 进阶 (11)Nodejs 进阶:调试日志打印:debug模块
    NodeJS学习笔记 进阶 (10)Nodejs 进阶:log4js入门实例(ok))
    NodeJS学习笔记 进阶 (9)express+cookie-parser:签名机制深入剖析(ok)
    NodeJS学习笔记 进阶 (8)express+morgan实现日志记录(ok)
    NodeJS学习笔记 进阶 (7)express+session实现简易身份认证(ok)
    NodeJS学习笔记 进阶 (6)本地调试远程服务器上的Node代码(ok)
    NodeJS学习笔记 进阶 (5)将图片转成datauri嵌入到html(ok)
    51nod 1287 线段树
    51nod 1043 数位dp
    51nod 1042 数位dp
  • 原文地址:https://www.cnblogs.com/guo7533/p/8594097.html
Copyright © 2011-2022 走看看