1、字典是一种可变容器模型,可以存储任意类型对象。
2、字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
3、键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
4、一个简单的字典实例:
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8 # 更新 Age
dict['School'] = "菜鸟教程" # 添加信息
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del dict['Name'] # 删除键 'Name'
dict.clear() # 清空字典
del dict # 删除字典
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
1、不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
dict = {'Name': 'Runoob', 'Age': 7, 'Name': '小菜鸟'}
print ("dict['Name']: ", dict['Name'])
2、键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
dict = {['Name']: 'Runoob', 'Age': 7}
print ("dict['Name']: ", dict['Name'])
讲字典排序之前,先把sorted()函数说清楚
1、sorted()函数语法
sorted(iterable, key=None, reverse=False)
(1) iterable–可迭代对象
(2) key–主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序
(3)reverse–排序规则,reverse=True降序,reverse=False升序(默认)
2、函数返回重新排序的列表
dic = {"Alice": 15, "Jerry": 35, "Wendy": 25}
print(sorted(dic.items(), key=lambda item: item[0]))
print(sorted(dic.items(), key=lambda item: item[1]))
print(sorted(dic.keys()))
上周做的美团算法的一个编程题,题目大致是这样的:
给出一串字符串列表,要求对里面的单词进行排序,先按长度排序,短的在前,长的在后;如果长度相同,再按照字母排列,例如
输入:jiangsu, hefei,lianyungang,chengdu,
输出:hefei, chengdu,jiangsu,lianyungang
代码:
def CitySort(list_cities):
list_citylen = []
for i in list_cities:
citylen = len(i)
list_citylen.append(citylen)
dict_city = dict(zip(list_cities, list_citylen))
return(sorted(dict_city.items(), key=lambda item:item[1]))
def AsciiSort(len_sorted):
list_city = []
for j in len_sorted:
list_city.append(j[0])
list_first_letter = []
for m in list_city:
list_first_letter.append(m[0])
dict_city = dict(zip(list_city, list_first_letter))
return (sorted(dict_city.items(), key=lambda item: item[1]))
cities = input("请输入待排序单词:\n")
list_cities = cities.split(",")
len_sorted = CitySort(list_cities)
sorted_cities = AsciiSort(len_sorted)
list_city = []
for j in sorted_cities:
list_city.append(j[0])
print(",".join(list_city))
参考链接1:https://www.runoob.com/python3/python3-dictionary.html
参考链接2:https://www.runoob.com/python3/python3-func-sorted.html
参考链接3:https://blog.csdn.net/jerry_1126/article/details/82456901