Python 集合中元素的数据类型可以不同,但集合中不能嵌套列表、集合、字典
- 集合set 支持嵌套元组tuple
# 集合set 嵌套元组tuple
def return_set_dataTuple():
# 返回集合set
return {('dd', 123), ('ee', 234), ('gg', 345)}
# python 函数入口
if __name__ == '__main__':
print(return_set_dataTuple())
print(type(return_set_dataTuple()))
# 输出结果:
{('gg', 345), ('ee', 234), ('dd', 123)}
<class 'set'>
- 集合set 不支持嵌套集合
# 集合set 不支持嵌套集合set
def return_set_dataSet():
# 返回集合set
return {{'dd', 123}, {'ee', 234}, {'gg', 345}}
# python 函数入口
if __name__ == '__main__':
print(return_set_dataSet())
# 结果输出:
Traceback (most recent call last):
File "XX\test_func2.py", line 9, in <module>
print(return_set_dataSet())
File "XX\test_func2.py", line 4, in return_set_dataSet
return {{'dd', 123}, {'ee', 234}, {'gg', 345}}
TypeError: unhashable type: 'set'
- 集合set 不支持嵌套列表list
# 集合set 不支持嵌套列表list
def return_set_dataList():
# 返回集合set
return {['dd', 123], ['ee', 234], ['gg', 345]}
# python 函数入口
if __name__ == '__main__':
print(return_set_dataList())
# 结果输出:
Traceback (most recent call last):
File "XX\test_func2.py", line 9, in <module>
print(return_set_dataList())
File "XX\test_func2.py", line 4, in return_set_dataList
return {['dd', 123], ['ee', 234], ['gg', 345]}
TypeError: unhashable type: 'list'
- 集合set 不支持嵌套字典dict
# 集合set 不支持嵌套字典dict
def return_set_dataDict():
# 返回集合set
return {{'name': 'dd', 'password': 123}, {'name': 'ee', 'password': 234}, {'name': 'gg', 'password': 345}}
# python 函数入口
if __name__ == '__main__':
print(return_set_dataDict())
# 结果输出:
Traceback (most recent call last):
File "XX\test_func2.py", line 9, in <module>
print(return_set_dataDict())
File "XX\test_func2.py", line 4, in return_set_dataDict
return {{'name': 'dd', 'password': 123}, {'name': 'ee', 'password': 234}, {'name': 'gg', 'password': 345}}
TypeError: unhashable type: 'dict'
因为集合的元素类型只能是不可变数据类型,如整数,浮点数,字符串,元组等(列表,字典,集合类型本身都是可变数据类型,不能做集合的元素出现)