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'

因为集合的元素类型只能是不可变数据类型,如整数,浮点数,字符串,元组等(列表,字典,集合类型本身都是可变数据类型,不能做集合的元素出现)

posted @ 2023-03-18 13:03  furichan  阅读(550)  评论(0编辑  收藏  举报