如何截断指定长度的 Python 字典?
要截断一个指定长度的 Python 字典,可以使用 itertools 模块。该模块实现了一些受 APL、Haskell 和 SML 构造启发的迭代器构造块。要截断指定长度,我们将使用 itertools 模块的 islice() 方法。
该模块标准化了一组快速、内存有效的工具,这些工具本身或组合后都很有用。一起,它们构成了一个迭代器代数,可以在纯 Python 中简洁高效地构建特定工具。
更多Python相关文章,请阅读:Python 教程
语法
以下是语法-
itertools.islice(sequence, stop)
or
itertools.islice(sequence, start, stop, step)
上面,sequence 参数是要迭代的项,而 stop 是在特定位置停止迭代。start 是迭代开始的位置。step 有助于跳过项。islice() 不支持 start、stop 或 step 的负值。
在指定长度截断字典
我们将使用 itertools 模块的 islice() 方法将包含四个键值对的字典截断为两个。这些项被截断为两个,并将其作为参数设置-
例子
import itertools
# 使用 4 个键值对创建字典
myprod={
"Product":"Mobile",
"Model": "XUT",
"Units": 120,
"Available": "Yes"
}
# 显示字典
print("Dictionary =\n",myprod)
# 使用 islice() 截断字典
myprod= dict(itertools.islice(myprod.items(),2))
# 显示字典
print("截断后的字典 =\n",myprod)
输出
Dictionary =
{'Product': 'Mobile', 'Model': 'XUT', 'Units': 120, 'Available': 'Yes'}
截断后的字典 =
{'Product': 'Mobile', 'Model': 'XUT'}
在指定范围截断字典
我们将使用 itertools 模块的 islice() 方法将包含六个键值对的字典截断。这些项是在范围内被截断的,因为我们设置了 start 和 stop 参数-
例子
import itertools
# 创建一个有6个键值对的字典
myprod = {
"Product":"手机",
"Model": "XUT",
"Units": 120,
"Available": "是",
"Grade": "A",
"Rating": "5"
}
# 显示字典
print("字典 =\n",myprod)
# 使用islice()函数截取字典
# 我们设置了开始和结束的参数来截取字典
myprod = dict(itertools.islice(myprod.items(),3,5))
# 显示字典
print("截取后的字典 =\n",myprod)
输出
字典 =
{'Product': 'Mobile', 'Model': 'XUT', 'Units': 120, 'Available': 'Yes', 'Grade': 'A', 'Rating': '5'}
截取后的字典 =
{'Available': 'Yes', 'Grade': 'A'}
通过跳过项目来截取字典
我们将使用itertools模块的islice()函数截取一个具有六个键值对的字典。由于我们设置了 开始 和 结束 参数,因此会在一个范围内截取字典。使用 步长 参数来跳过项目 −
例子
import itertools
# 创建一个有6个键值对的字典
myprod = {
"Product":"手机",
"Model": "XUT",
"Units": 120,
"Available": "是",
"Grade": "A",
"Rating": "5"
}
# 显示字典
print("字典 =\n",myprod)
# 使用islice()函数截取字典
# 我们设置了开始、结束和步长来跳过项目
myprod = dict(itertools.islice(myprod.items(),2,5,2))
# 显示字典
print("截取后的字典 =\n",myprod)
输出
字典 =
{'Product': 'Mobile', 'Model': 'XUT', 'Units': 120, 'Available': 'Yes', 'Grade': 'A', 'Rating': '5'}
截取后的字典 =
{'Units': 120, 'Grade': 'A'}