📜  内存中Python对象的意外大小

📅  最后修改于: 2022-05-13 01:54:51.712000             🧑  作者: Mango

内存中Python对象的意外大小

在本文中,我们将讨论内存中Python对象的意外大小。

Python对象包括列表、元组、字典等具有不同的内存大小,并且每个对象也将具有不同的内存地址。 Unexpected size 是指我们无法预期的内存大小。但是我们可以使用 getsizeof()函数来获取大小。这将返回Python对象的内存大小。该函数在 sys 模块中可用,因此我们需要导入它。

语法

sys.getsizeof(object)

示例 1:获取意外大小的字符串对象的Python代码

单个字符的字符串将消耗 50 个字节,然后在 1 个字符之后,它将消耗 n 个字符字节。

例子:

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 个字节。

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