字典是一种无序的数据值集合,即在花括号内的键值对。字典中的键是唯一的(不能重复),而值可以重复。由于字典在项目中的广泛应用,面试中经常会出现关于字典的问题。因此,对于每个有志于成为数据科学家的人来说,掌握字典的相关知识是非常重要的。本文将讨论一些关键的理论和实践问题,帮助求职者深入理解字典。
问题1:什么是字典?字典是由键值对组成的集合,每对键值对都是唯一的。可以使用空花括号{}来创建字典。例如:
dictionary1 = {‘a’: 1, ‘b’: 2, ‘c’: 3}
问题2:字典是否区分大小写?是的,字典是区分大小写的,即键名相同但大小写不同的键被视为不同的键。例如,‘apple’和‘APPLE’将被视为两个不同的键。
问题3:创建字典的不同方式有哪些?有三种不同的创建字典的方法:
Dictionary1 = {}
print(Dictionary1)
# 输出:{}
key1 = 'a'
value1 = 1
Dictionary1[key1] = value1
# 输出:{'a': 1}
Dictionary1 = dict({1: 'a', 2: 'b'})
print(Dictionary1)
# 输出:{1: 'a', 2: 'b'}
Dictionary1 = dict([(1,'a'), (2, 'b')])
print(Dictionary1)
# 输出:{1: 'a', 2: 'b'}
Dictionary1 = {1: 'a', 2: 'b'}
print(Dictionary1)
# 输出:{1: 'a', 2: 'b'}
问题4:什么是嵌套字典?如何创建?嵌套字典是指字典中的字典。例如:
dictionary1 = {1: {'roll': '101', 'name': 'sam'}, 2: {'roll': '102', 'name': 'ram'}}
print(dictionary1)
# 输出:{1: {'roll': '101', 'name': 'sam'}, 2: {'roll': '102', 'name': 'ram'}}
嵌套字典的元素可以通过以下方式访问:
print(dictionary[1]['roll'])
# 输出:101
问题5:如何在字典中添加元素?字典中添加元素有多种方法:
Dict1 = {}
Dict1[0] = 'a'
Dict1[1] = 'b'
print("添加元素后的字典: ", Dict1)
# 输出:{0: 'a', 1: 'b' }
Dict1['values'] = 4, 5, 6
print("向键添加多个值后的字典: ", Dict1)
# 输出:{0: 'a', 1: 'b', 'values': (4, 5, 6) }
Dict1['Nested'] = {1: 'Analytics', 2: 'Life'}
print(Dict1)
# 输出:{0: 'a', 1: 'b', 'values': (4, 5, 6), 'Nested': {1: 'Analytics', 2: 'Life'} }
问题6:讨论字典使用的不同方法。字典使用的不同方法包括:
dict2 = {1: 'Analytics', 2: 'Vidhya'}
dict2.clear()
print(dict2)
# 输出:{ }
x = dict2.get(2)
print(x)
# 输出:Vidhya
dict3 = dict2.copy()
print(dict3)
# 输出:{1: 'Analytics', 2: 'Vidhya'}
Dict1 = {1: 'Analytics', 2: 'Vidhya'}
print(Dict1.items())
# 输出:dict_items([(1, 'Analytics'), (2, 'Vidhya')])
Dict1.keys()
Dict1.values()
# 输出:dict_keys([1, 2]) 和 dict_values(['Analytics', 'Vidhya'])
Dict1.update({2:"Blogathon"})
print(Dict1)
# 输出:{1: 'Analytics', 2: 'Blogathon'}
问题7:从给定列表创建字典。例如:
def Convert_list_dict(dict2):
x = iter(dict2)
res_dct1 = dict(zip(x, x))
return res_dct1
dict1 = [1, 'a', 2, 'b', 3, 'c']
print(Convert_list_dict(dict1))
# 输出:{1: 'a', 2: 'b', 3: 'c'}
这里,zip()函数接受可迭代对象(可以是两个以上)并将它们组合成元组。
问题8:从字典创建元组列表。
dict1 = {1: 'a', 2: 'b', 3: 'c'}
lst1 = list(dict1.items())
print(lst1)
# 输出:[(1, 'a'), (2, 'b'), (3, 'c')]
问题9:从字典创建列表。假设给定的字典是:
dict1 = {1: 'a', 2: 'b', 3: 'c'}
x = list(dict1.keys())
y = list(dict1.values())
for i in y:
x.append(i)
print(x)
# 输出:[1, 2, 3, 'a', 'b', 'c']
问题10:如何从字典中删除键值对?可以使用‘del’关键字删除键值对,如下所示:
del dict1[1]
print(dict1)
# 输出:{2: 'b', 3: 'c'}
问题11:字典是可变的吗?‘可变’意味着可以在字典中添加、删除或更新键值对。是的,字典是可变的。例如:
Dict1 = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
Dict1[2] = 'h'
print(Dict1)
# 输出:{1: 'a', 2: 'h', 3: 'c', 4: 'd'}
问题12:给定两个列表,从它们创建字典。输入:[1, 2, 3, 4, 5], ['a', 'b', 'c', 'd', 'e']。输出:{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}。
list1 = [1, 2, 3, 4, 5]
list2 = ['a', 'b', 'c', 'd', 'e']
dict1 = {}
for i, j in zip(list1, list2):
dict1[i] = j
print(dict1)
# 输出:{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}
dict1 = {i:j for i,j in zip(list1, list2)}
print(dict1)
# 输出:{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}
dict1 = {2: 'Apple', 1:'Mango', 3:'Orange', 4:'Banana'}
print(sorted(dict1.keys()))
for key in sorted(dict1):
print("按键排序的字典:", (key, dict1[key]))
# 输出:[1, 2, 3, 4]
# 1: Mango
# 2: Apple
# 3: Orange
# 4: Banana