python数据结构之字典

Posted 山外云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python数据结构之字典相关的知识,希望对你有一定的参考价值。

1、python字典的定义

1、用大括号{},以逗号分隔每个键值对,键与值之间用冒号连接

2、键:需要不可变的数据结构,值可以是任意的数据对象

3、字典是无序的,键在字典中必须是唯一,在字典中取值的方式是以键寻找相对应的的值

 

a = {}
c = dict()
a
{}
c
{}
b = {\'a\':\'hello\',\'c\':\'you\',\'b\':\'how\'}
a = [1,2,3]
b = [\'a\',\'b\',\'c\']
d = dict(zip(a,b))
d
{1: \'a\', 2: \'b\', 3: \'c\'}

给字典中的项value赋值
a = {1:23}
a[1] = 3
a
{1: 3}

字典的访问
b
{\'a\': \'hello\', \'c\': \'you\', \'b\': \'how\'}
b.get(\'a\')
\'hello\'

 

增:
fruits
{\'a\': \'apple\', \'b\': \'banana\', \'g\': \'grape\', \'o\': \'orange\'}
fruits.setdefault(\'martin\',20)
20
fruits.setdefault(\'a\',\'appleaaa\')
\'apple\'
fruits
{\'a\': \'apple\', \'b\': \'banana\', \'g\': \'grape\', \'o\': \'orange\', \'martin\': 20}

fruits.update({3:5})
fruits.update({\'a\':\'appleupdate\'})
fruits
{\'a\': \'appleupdate\', \'b\': \'banana\', \'g\': \'grape\', \'o\': \'orange\', \'martin\': 20, 3: 5}
2)    setdefault:参数是key和value,如果key不存在,在添加key:value,如果key存在,什么也不做。
3)    update:参数是key和value,不管key存不存在,都变成 key:value的形式。


删除(工作中不常用)
fruits
{\'a\': \'appleupdate\', \'b\': \'banana\', \'g\': \'grape\', \'o\': \'orange\', \'martin\': 20, 3: 5}
fruits.pop(3)
5
fruits
{\'a\': \'appleupdate\', \'b\': \'banana\', \'g\': \'grape\', \'o\': \'orange\', \'martin\': 20}

改:
1、赋值
2、update

a
{2: 9, 3: 5, 4: 9}
a[0] = 8
a
{2: 9, 3: 5, 4: 9, 0: 8}
a[2] = 8
a
{2: 8, 3: 5, 4: 9, 0: 8}
a.update({3:10})
a
{2: 8, 3: 10, 4: 9, 0: 8}

查
a
{2: 8, 3: 10, 4: 9, 0: 8}
a.get(2)
8
a[0]
8

两种取值的区别:
当key不存在的时候,get不会报错,
通过[key]方式去取值的时候,会报错

 

字典的遍历
1for item in _dict:
         print itme

2for k,v in a.items():
        print k,v

a = {1:3,5:0,\'ss\':123}

for item in a:
    print(item)

a = {1:3,5:0,\'ss\':123}

for k,v in a.items():
    print(k,v)


当把字典当成序列的时候,指的是key组成的序列

 

 

超市购物

#coding:gbk
import sys
food_price = {\'apple\':5, \'orange\': 8, \'banana\':3, \'beef\':40, \'pork\':26, \'cocacola\':3}

while True:
    try:
        money = int(input(\'pls input your money: \'))
        break
    except:
        print(\'your input in not conrrect,pls input a number\')
        
shooping_list = []

while True:
    print(\'\\n 目前可购买的商品:\')
    for food,price in food_price.items():
        print(food,price)
        
    if money < min(food_price.values()):
        print(\'\\n sorry,you have not enough money to buy any food\\n\')
        if shooping_list:
            print(\'\\n 你已经买了如下商品:\\n %s\' %shooping_list)
    print(\'\\n 你现在有%s,选择一支商品吧\' % money)
    
    _choice = input(\'\\n pls input your choice:\')
    choice = _choice.strip()
    
    if choice in [\'quit\',\'exit\',\'q\']:
        print(\'\\n 你已经买了如下商品 \\n %s\' %shooping_list)
        sys.exit()
        
    if  choice not in food_price:
        print(\'\\n 你已经买了如下商品\\n %s\' %shooping_list)
        continue
    
    price = food_price[choice]
    print(\'\\n 你选择的商品:%s的价格:%s\' %(choice,price))
    
    if money >= price:
        shooping_list.append(choice)
        money = money - price
        print(\'\\n你的余额是 %s \\n\' % money)
    else:
        print(\'\\nsorry,买不起,您剩余:%s$, %s 的价格是 %s $, 真穷!\' % (money, choice, price))
        

            

 

以上是关于python数据结构之字典的主要内容,如果未能解决你的问题,请参考以下文章

Python snippet(代码片段)

Python代码阅读(第26篇):将列表映射成字典

Python代码阅读(第40篇):通过两个列表生成字典

python之字典操作

Python之数据结构:字典

python基础之字典