【python】 dictionary

一些字典的基本操作
.items()
.keys()
.values()
.get(self, key, dafault)
sorted() 该对字典进行排序的时候,返回的是列表

import operator

#字典
#使用花括号定义  a = {...}
#key-value  (value可以是任意数据类型)
def base_operate():
    alien = {'color': 'yellow', 'points': 5}
    print(alien['color'])
    print(alien['points'])
    #print(alien['3'])  #报错  KeyError: '3'
    #print(alien[0])  #不可以使用下标访问

    #添加key-value
    alien['head'] = "so big"
    print(alien['head'])

    #删除字典中的元素
    del(alien['points'])
    print(alien)

    #遍历字典
    # 字典不关心键—值对的存储顺序, 而只跟踪键和值之间的关联关系
    print(alien.items())  # 返回一个 键—值对 列表
    for key, value in alien.items():
        print(key + ": " + value)

    print(alien.keys()) # 返回一个 键 列表
    for key in alien.keys():
        print(key)
    print(len(alien.keys()))  # 2

    # not in
    # if "hand" not in alien.keys():
    #     alien["hand"] = 2
    # print(alien["hand"]) # 2

    alien["hand"] = 3
    #.get(self, key, default)
    alien["hand"] = alien.get("hand", 2)
    print(alien["hand"]) # 如果没有alien["hand"] = 3这一句, 那么输出2, 否则输出3

    #按 key 顺序遍历字典
    favorite_languages = {
        'jen': 'python',
        'sarah': 'c',
        'edward': 'ruby',
        'phil': 'python',
    }
    for name in sorted(favorite_languages.keys()):
        print(name.title() + ", thank you for taking the poll.")

    #遍历 value
    for value in favorite_languages.values():
        print(value)

    #对字典进行排序  !!!!!!!
    nation = {"china": 200, 'usa': 300, "japan": 100}
    #  key为函数,指定取待排序元素的哪一项进行排序
    # operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号)
    sortedNation = sorted(nation.items(), key = operator.itemgetter(1))
    print(type(sortedNation))  # <class 'list'>
    print(sortedNation)    # key = operator.itemgetter(1) 时 [('japan', 100), ('china', 200), ('usa', 300)]
    #print(sortedNation)    # key = operator.itemgetter(0) 时 [('china', 200), ('japan', 100), ('usa', 300)]
    print(sortedNation[0][0])  # china


def main():
    base_operate()


if __name__ == "__main__":
    main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值