内存中Python对象的意外大小
在本文中,我们将讨论内存中Python对象的意外大小。
Python对象包括列表、元组、字典等具有不同的内存大小,并且每个对象也将具有不同的内存地址。 Unexpected size 是指我们无法预期的内存大小。但是我们可以使用 getsizeof()函数来获取大小。这将返回Python对象的内存大小。该函数在 sys 模块中可用,因此我们需要导入它。
语法:
sys.getsizeof(object)
示例 1:获取意外大小的字符串对象的Python代码
单个字符的字符串将消耗 50 个字节,然后在 1 个字符之后,它将消耗 n 个字符字节。
例子:
‘e’ will consume – 50
‘eo’ will consume – 51
‘eoo’ will consume – 52
Python3
# import sys module
import sys
# get the size of the given string
print(sys.getsizeof('g'))
# get the size of the given string
print(sys.getsizeof('ge'))
# get the size of the given string
print(sys.getsizeof('gee'))
# get the size of the given string
print(sys.getsizeof('geek'))
# get the size of the given string
print(sys.getsizeof('geeks'))
Python3
# import sys module
import sys
# get the size of the given integer
print(sys.getsizeof(123))
# get the size of the given integer
print(sys.getsizeof(21))
Python3
# import sys module
import sys
# get the size of empty list
print(sys.getsizeof([]))
# get the size of list with one element
print(sys.getsizeof([2]))
# get the size of list with two elements
print(sys.getsizeof([22, 33]))
Python3
# import sys module
import sys
# get the size of empty dictionary
print(sys.getsizeof({}))
# get the size of dictionarydictionary with one element
print(sys.getsizeof({'k': 2}))
# get the size of list with two elements
print(sys.getsizeof({'k': 2, 'h': 45}))
输出:
50
51
52
53
54
示例 2:获取意外大小的整数对象的Python程序
整数对象将占用 28 个字节
Python3
# import sys module
import sys
# get the size of the given integer
print(sys.getsizeof(123))
# get the size of the given integer
print(sys.getsizeof(21))
输出:
28
28
示例 3:获取意外大小的列表对象的Python代码
我们可以将列表定义为 []。一个空列表将消耗 72 个字节,并且每个元素消耗额外的 8 个字节。
[] – 72
[1] – 72 + 8 = 80
[1,2] – 72 +8 + 8 =88
Python3
# import sys module
import sys
# get the size of empty list
print(sys.getsizeof([]))
# get the size of list with one element
print(sys.getsizeof([2]))
# get the size of list with two elements
print(sys.getsizeof([22, 33]))
输出:
72
80
88
示例 4:获取字典对象的意外大小
该对象将消耗 248 字节,与项目数无关。
Python3
# import sys module
import sys
# get the size of empty dictionary
print(sys.getsizeof({}))
# get the size of dictionarydictionary with one element
print(sys.getsizeof({'k': 2}))
# get the size of list with two elements
print(sys.getsizeof({'k': 2, 'h': 45}))
输出:
248
248
248