Python|将给定的字典分成两半
在使用字典时,有时我们可能会遇到需要减少单个容器占用的空间并希望将字典分成两半的问题。让我们讨论可以执行此任务的某些方式。
方法 #1:使用items() + len()
+ 列表切片
上述功能的组合可以轻松执行此特定任务,其中通过列表切片完成切片并通过items()
提取字典项目
# Python3 code to demonstrate working of
# Split dictionary by half
# Using items() + len() + list slicing
# Initialize dictionary
test_dict = {'gfg' : 6, 'is' : 4, 'for' : 2, 'CS' : 10}
# printing original dictionary
print("The original dictionary : " + str(test_dict))
# Using items() + len() + list slicing
# Split dictionary by half
res1 = dict(list(test_dict.items())[len(test_dict)//2:])
res2 = dict(list(test_dict.items())[:len(test_dict)//2])
# printing result
print("The first half of dictionary : " + str(res1))
print("The second half of dictionary : " + str(res2))
输出 :
The original dictionary : {‘CS’: 10, ‘for’: 2, ‘is’: 4, ‘gfg’: 6}
The first half of dictionary : {‘is’: 4, ‘gfg’: 6}
The second half of dictionary : {‘for’: 2, ‘CS’: 10}
方法 #2:使用slice() + len() + items()
上述功能的组合可用于执行此特定任务。在此,我们执行与上述方法类似的任务,不同之处在于切片操作是通过slice()
执行的,而不是列表切片。
# Python3 code to demonstrate working of
# Split dictionary by half
# Using items() + len() + slice()
from itertools import islice
# Initialize dictionary
test_dict = {'gfg' : 6, 'is' : 4, 'for' : 2, 'CS' : 10}
# printing original dictionary
print("The original dictionary : " + str(test_dict))
# Using items() + len() + slice()
# Split dictionary by half
inc = iter(test_dict.items())
res1 = dict(islice(inc, len(test_dict) // 2))
res2 = dict(inc)
# printing result
print("The first half of dictionary : " + str(res1))
print("The second half of dictionary : " + str(res2))
输出 :
The original dictionary : {‘CS’: 10, ‘for’: 2, ‘is’: 4, ‘gfg’: 6}
The first half of dictionary : {‘is’: 4, ‘gfg’: 6}
The second half of dictionary : {‘for’: 2, ‘CS’: 10}