简介_
在python中,字典是数据值的无序集合,即花括号内的键:值对。字典中的键是唯一的(不能重复),而值可以重复。由于在项目中大量使用字典,因此在面试中经常会问到有关字典的问题。
因此,对于每个有志成为数据科学家的人来说,都需要对字典有很好的了解。
在本文中,将讨论一些重要的理论和实践问题,这将有助于有志者对字典有一个很好的理解。

字典面试题
问题1:什么是字典?
字典是一组键:值对,每对都是唯一的。可以使用空括号 {} 创建字典。我们可以给它添加一个 key: value 对。
例如 - dictionary1 = { 'a': 1, 'b': 2, 'c': 3 }
问题 2:字典是否区分大小写?
是的,字典区分大小写,即键名相同,但不同大小写的处理方式不同,即“apple”和“APPLE”将被视为单独的键。
问题 3:创建字典有哪些不同的方法?
创建字典的三种不同方法是:
1.创建一个空字典
Dictionary1 = {}
print(Dictionary1)输出:
{}key1 = 'a'
value1 = 1
Dictionary1[key1] = value1输出:
{'a': 1}2. 使用 dict() 方法创建字典
Dictionary1 = dict({1: 'a', 2: 'b'})
print(Dictionary1)输出:
{1: 'a', 2: 'b'}3.创建字典,每个项目成对
Dictionary1 = dict([(1,'a'), (2, 'b')])
print(Dictionary1)输出:
{1:'a',2:'b'}4.直接创建字典
Dictionary1 = {1: 'a', 2: 'b'}输出:
{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:如何在 Dictionary 中添加元素?
字典中的元素可以通过多种方式添加:
1.一次添加一对
Dict1 ={}
Dict1[0] = 'a'
Dict1[1] = 'b'
print("Dictionary after adding 3 elements: ", Dict1)输出:
{0: 'a', 1: 'b' }2. 向单个键添加多个值
Dict1['values'] = 4, 5, 6
print("Dictionary after adding multiple values to a key: ", Dict1)输出:
{0: 'a', 1: 'b', 'values': (4, 5, 6) }3.添加嵌套键值对
Dict1['Nested'] = {1: 'Analytics', 2: 'Life'}输出:
{0: 'a', 1: 'b', 'values': (4, 5, 6), 'Nested': {1: 'Analytics', 2: 'Life'} }问题 6:讨论与 Dictionary 一起使用的不同方法。
Dictionary 使用的各种方法有:
1.清除()
它用于从字典中删除所有元素,即创建空字典。
dict2 = {1: 'Analytics', 2: 'Vidhya'}
dict2.clear()
print(dict2)输出:
{ }2. 获取()
它用于获取指定键的值。
x = dict2.get(2)
print(x)输出:
Vidhya3. 复制()
它用于返回字典的副本
dict3 = dict2.copy()
print(dict3)输出:
{1: 'Analytics', 2: 'Vidhya'}4.项目()
它用于返回由键值对组成的列表元组。
Dict1 = {1: 'Analytics', 2: 'Vidhya'}
print(Dict1.items())输出:
dict_items([(1, 'Analytics'), (2, 'Vidhya')])5.键()和值()
分别返回字典中的所有键和值。
Dict1.key()
Dict1.values()输出:
dict_keys([1, 2])
dict_values(['Analytics', 'Vidhya'])6.更新()
此方法更新字典中键的值
Dict1.update({2:"Blogathon"})
print(Dict1)输出:
{1: 'Analytics', 2: 'Blogathon'}问题 7:根据给定列表创建字典。例如-
输入: [1,'a',2,'b',3,'c'] 输出: {1:'a',2:'b',3:'c'}
def Convert_list_dict(dict2):
x = iter(dict2)
res_dct1 = dict(zip(x, x))
返回 res_dct1
dict1 = [1, 'a', 2, 'b',3, 'c']
打印(Convert_list_dict(dict1))
在这里, zip() 函数采用可迭代对象(也可以是两个以上)并将它们组合成一个元组。
输出:
{1:'a',2:'b',3:'c'}问题 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:如何从 Dictionary 中删除键值对?
可以使用'del'关键字删除键值对,如下所示:
del dict1[1]
print(dict1)输出:
{2:'b',3:'c'}问题11:字典是可变的吗?
术语“可变”意味着我们可以在字典中添加、删除或更新键值对。
是的,字典是可变的。例如,
Dict1 = {1: 'a', 2: 'b', 3: 'c', 4: 'd' }
Dict1[2] = 'h'
print(Dict2)输出:
{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 和 list2,如下所示:
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:h for i,j in zip(list1, list2)}
print(dict1)输出:
{1:'a',2:'b',3:'c',4:'d',5:'e'}问题 13:编写代码以使用键对字典进行排序。
Input: {2: ‘Apple’, 1:’Mango’, 3:’Orange’, 4:’Banana’}
Output: 1: Mango
2: Apple
3: Orange
4: Banana
下面是使用键对字典进行排序的代码:
dict1 = {2: 'Apple', 1:'Mango', 3:'Orange', 4:'Banana'}
print(sorted(dict1.keys()))
for key in sorted(dict1):
print("Sorted dictionary using key:",(key, color_dict[key]))输出:
[1, 2, 3, 4]
1: Mango
2: Apple
3: Orange
4: Banana总结
在这篇博客中,我们研究了 Dictionary 上一些重要且常见的面试问题。综上所述,本文的主要贡献如下:
1. 对字典的基本概念进行了讨论,以使读者熟悉它。
2. 我们学习了如何在 Dictionary 上执行各种功能,例如添加键值对和删除键值对。
3. 我们讨论了可用于与 Dictionary 一起工作和玩耍的各种功能。
4. 此外,我们还讨论了一些可以在面试中被问到的关于 Dictionary 的编程问题。
原文标题:Top Interview Questions on Dictionary in Python
原文作者:Saumyab271
原文链接:https://www.analyticsvidhya.com/blog/2022/07/top-interview-questions-on-dictionary-in-python/




