千家信息网

Python如何创建和使用字典

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被
千家信息网最后更新 2024年09月22日Python如何创建和使用字典

Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中

Python字典包含了以下内置方法:

序号函数及描述
1dict.clear()
删除字典内所有元素
2dict.copy()
返回一个字典的浅复制
3dict.fromkeys(seq[, val])
创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
4dict.get(key, default=None)
返回指定键的值,如果值不在字典中返回default值
5dict.has_key(key)
如果键在字典dict里返回true,否则返回false
6dict.items()
以列表返回可遍历的(键, 值) 元组数组
7dict.keys()
以列表返回一个字典所有的键
8dict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9dict.update(dict2)
把字典dict2的键/值对更新到dict里
10dict.values()
以列表返回字典中的所有值
11pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
12popitem()
返回并删除字典中的最后一对键和值。
# 创建和使用字典names = ["Bill", "Mike", "John", "Mary"]numbers = ["1234", "4321", "6789", "6543"]print(numbers[names.index("Mike")])   #4321      通过names中的Mike的索引 位置 来查找他的电话号码 numbers中的列表print(names[numbers.index("6543")])     # Mary# 多个关联的数据分散到不同的 列表或者元组中,不太好维护 引入 字典 # 字典是一对 key和value {}  中间用: 表示phoneBook = {"Bill":"1234","Mike":"4321","John":"6645","Mary":"7753"}print(phoneBook)             #  {"Bill":"1234","Mike":"4321","John":"6645","Mary":"7753"}print(phoneBook["Mike"])     #  4321----------------------------------------------- # 使用dict函数将序列转换为字典# 第一个是列表 第二个元素为元组    # 首先定义一个列表,列表中有多个元数,里面的元素可以为多个值,可以为列表也可以为元组 items = [['Bill',"4321"],("Mike","7891"),['John','4567']]d = dict(items)print(d)        # {'Bill': '4321', 'Mike': '7891', 'John': '4567'}'''也可以直接写成这样 items = [['Bill',"4321"],("Mike","7891"),['John','4567']]#d = dict(items)print(dict(items))'''dict1 = dict(name="Bill", number=6543, age=34)   # 这是把元组转化为字典print(dict1)   # {'name': 'Bill', 'number': 6543, 'age': 34}# 需要先定义一个空的列表 然后 把输入的 input 追加起来,再通过dict函数进行转化  成字典 items = []while True:    key = input("请输入Key:")    if key == ":exit":        break;    value = input("请输入value:")    keyValue = [key,value]    items.append(keyValue)  # 追加d = dict(items)print(d)'''请输入Key:majihui请输入value:12345请输入Key:zhaoshun请输入value:33333请输入Key:local请输入value:china请输入Key::exit{'majihui': '12345', 'zhaoshun': '33333', 'local': 'china'}'''-------------------------------------# 字典的基本操作# 通过len函数获取字典的长度items = [1,2,3,4,5]      # 这是一个列表print(len(items))        # 5 输出列表的长度d = {"name":"Bill", "age":43}   # 这是一个字典print(len(d))            # 2    输出字典的长度# 通过key获取和设置或修改字典中的值 print(d["name"])            # Bill 获取字典中的值 d["name"] = "Mary"          # 修改字典中的value的值 把原来名字为 Bill改成 Maryprint(d)                    # {'name': 'Mary', 'age': 43} #print(items[10])           # 当输出的索引超出了列表 就会报错 异常d["salary"] = 5432          # 在原来字典的基础上追加一个 print(d)                    # {'name': 'Mary', 'age': 43, 'salary': 5432}# 判断字段是否在列表中print(1 in items)           # Trueprint(10 in items)          # False#对于字典来说,他是直接找key是否在字典中存储,他不会找valueprint("name" in d)          # Trueprint("location" in d)      # False'''列表和字典不同点小结:1. key的类型,列表只能是数字(索引),字典的key可以是多种类型,如字符串、元组2. 自动添加,引用列表元素,索引必须在范围内,否则抛出异常,字典的key如果不存在,会自动添加一个key-value对3. 查找成员,列表使用in,直接查找值,字典使用in,查找key查找效率,字典要高于列表和元组'''IDEs = {    'eclipse':    {        'languages':['Java','Python','JavaScript','PHP'],        'organization':'Eclipse基金会'    },    'visualstudio':    {        'languages':['C#','C++', 'VB.NET'],        'organization':'微软'    },    'webstorm':    {        'languages':['JavaScript'],        'organization':'JetBrains'    }    }labels = {    'languages':'支持的编程语言',    'organization':'所属机构'    }IDE = input('请输入IDE的名字')findIDE = IDE.replace(' ', '').lower() # 把输入的空格转化为空 并且 把输入的值转化为小写  choice = input('要查询的IDE支持的编程语言(lang)还是所属及机构(org)?') if choice == 'lang': key = 'languages'if choice == 'org': key = 'organization' if findIDE in IDEs:    print("{} {}是{}.".format(IDE, labels[key],IDEs[findIDE][key]))'''请输入IDE的名字eclipse要查询的IDE支持的编程语言(lang)还是所属及机构(org)?langeclipse 支持的编程语言是['Java', 'Python', 'JavaScript', 'PHP'].请输入IDE的名字WEBstorm要查询的IDE支持的编程语言(lang)还是所属及机构(org)?orgWEBstorm 所属机构是JetBrains.请输入IDE的名字eclipse      //输入的这个空面有空格要查询的IDE支持的编程语言(lang)还是所属及机构(org)?orgeclipse  所属机构是Eclipse基金会.'''
0