Python 字典

1.一个简单的字典

    alien_0 ={"color":"green","points":5}

    print(alien_0["color"])

    print(alien_0["points"])

    >>>gree

    >>>5

2.使用字典

    在Python中,字典是一系列键-值对。每个键都与一个值相关联,你可以使用键来

    访问与之相关联的值,与键相关联的值可以是数字,字符串,列表乃至字典。

    事实上,可将任何python对象作为字典的值

3.在python中,字典用放花括号{}中的一系列键值对表示,键和值之间用冒号分隔,而键-值对之间

    用逗号分隔

    例:aline_0={'color':'green'}

4.访问字典中的值

    要获取与键相关联的值,可依次指定字典名和放在方括号内的键

    例:alien_0={"color":"green"}

       print(alien_0["color"])

    这将返回字典alien_0中与键"color"相关联的值:

      green

5.添加键-值对

    字典是一种动态结构,可随时在其中田间键-值对

    例:

    alien_0 ={"color":"green","points":5}

    print(alien_0)

    alien_0['x_position]=0   #1

    alien_0['y_position']=25  #2

    print(alien_0)

    首先定义前面一直使用的字典,然后用打印这个字典,以显示其信息快照

    在#1处。添加一个键-值对,其中的键为“x-position”,而值为0,#2处同理

    {"color":"green","points":5}

     {"color":"green","points":5,'y_position':25,'x_positiom':0}

    注 键值对不关心添加顺序,只关心键和值的关联关系

    

6.创建空字典

    s = {}

    s = dict()

    两种方式都是创建空字典

    例:

    aline_0={}  #空字典

    aline_0['color']='green'

    aline_0['points']=5

    print(aline_0)  #返回{"color":"green","points":5}

7.修改字典中的值

    要修改字典中的值,可依次制定字典名,用方括号[ ] 括起的键以及与该键相关联的新值

8.删除键-值对

    对于字典中不再需要的信息,可使用del语句将相应的键-值对彻底删除

    使用del语句时,必须指定字典名和要删除的键

9.遍历字典

    方法:可以使用一个for循环来遍历字典

    例:

    user_0={"username":"efermi","first":"ebrico","last":"fermi"}

    for key,value in user_0.items():

        print("\nKey:" + key)

        print("Value:" + value)

    在python中不关心键-值对的存储顺序,而只跟踪键和值之间的关联关系

10.遍历字典中所有键

    在不需要使用字典中的值,方法key()很有用

    例:

    favorite_languages={"jen":"pyrhon","sarah":"c","edward":"ruby","phil":"python"}

    for name in favorite_languages.key():

            print(name.title())   #Jen Sarah Phil Edward

    遍历字典时,会默认遍历所有的键   用for name in favorite_languages:,输出不变


11.按顺序遍历字典中的所有键

    字典总是明确地记录键和值之间的关联关系,但获取字典的元素时,获取顺序时不可预测的。

    要以特定的顺序返回元素,一种办法是在for循环中返回的键进行排序

    为此,可使用函数sorted()来获得按特定顺序排列的键列表的副本

    例:

    favorite_languages={"jen":"pyrhon","sarah":"c","edward":"ruby","phil":"python"}

     for name in sorted(favorite_languages.key()):

            print(name,title()+",thank you for taking the poll.")

      #Edward,thank you for taking the poll.

        Jen,thank you for taking the poll.

        Phil,thank you for taking the poll.

        Sarah,thank you for taking the poll.

12.遍历字典中的所有值

    使用方法values(),它返回一个值列表,不包含任何键,用法同遍历键一样


13.字典的嵌套

    有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套

    例:

    As =[]  #创建一个空列表

    for i in range(30):

           a = {"name":"大头","age":13}

           As.append(a)

           print(As)

    首先创建一个空列表,用于存储接下来创建的字典,range() 返回一系列数字,其唯一用途

   告诉python要循环这个多少次,每执行这个循环,就创建一个a,添加到As列表中,共循环30次


14  在字典中存储列表

    有时候,需要列表存储在字典中

        例:pizza = {"crust":"thick","topping":["mushrooms","extra cheese"]}#存储所点pizza的信息

        print("You ordered a "+pizza["crust"]+"-crust pizza"+"with the following topping:")

        for topping in pizza["topping"]:

                print("\t"+topping)

            首先创建以一个字典,其中存储了有关顾客所点pizza的信息,在这个字典中,一个键是"crust"

            与之关联的值是字符串"thick";下个键是"toppings",与之相关联的是一个列表,其中存储了顾客要求

            添加的配料,用for循环打印"toppings"列表,结果如下

            You ordered a thick-crust pizza with the following topping:

            mushrooms

           extra cheese

    

15 在字典中存储字典

           可以在字典中存储字典,不过代码会比较复杂

           例:

        users = {'aeinstein':{'first':'albert','last':'einstein','location':'princeton'},

                        'mcurie':{'first':'marie','last':'curie','location':'paris'}},

        for username , user_info in users.items():

                print("\nUsetname:" + username)

                full_name = user_info['first']+' '+user_info['last']

                locatin = user_info['location']

                print('\tFull name:'+full_name.title())

                print('\tLocation:'+location.title())

                首先我们定义 一个名为users的字典,其中包含两个键:用户名'aeinstein'和'mcurie';

                与每个键相关联的值都是一个字典,其中包含用户名,姓和居住地

                for语句遍历字典users 将键存储username中,并以此将当前键关联的" 值 "存储在user_info中

                输出如下

               Usetname:aeinstein

               Full name: Albert Einstein

               Location:  Princeton

               Usetname: Mcurie

               Full name:Marie Curie

               Location:Paris

               

   list比较,dict有以下几个特点:

    1.查找和插入的速度极快,不会随着key的增加而变慢;

    2.需要占用大量的内存,内存浪费多。

而list相反:

    1.查找和插入的时间随着元素的增加而增加;

    2.占用空间小,浪费内存很少。


























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值