当我使用 set( list_a + list_b ) 它返回一个字典。集合自然返回字典吗?
Posted
技术标签:
【中文标题】当我使用 set( list_a + list_b ) 它返回一个字典。集合自然返回字典吗?【英文标题】:When i use set( list_a + list_b ) it returns a dictionary. Do sets naturally return dictionaries? 【发布时间】:2022-01-20 02:42:33 【问题描述】:我正在做一些 Python 初学者练习,其中之一是从列表中删除重复项。我已经成功完成了,但奇怪的是它返回的是字典而不是列表。
这是我的代码。
import random
a = []
b = []
for i in range(0,20):
n = random.randint(0,10)
a.append(n)
for i in range(0,20):
n = random.randint(0,10)
b.append(n)
print(sorted(a))
print(sorted(b))
c = set(list(a+b))
print(c)
and this is what it's spitting out
[0, 0, 1, 1, 1, 1, 2, 3, 4, 4, 6, 6, 7, 7, 7, 8, 9, 9, 10, 10]
[0, 1, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 7, 8, 9, 9, 10, 10, 10]
0, 1, 2, 3, 4, 6, 7, 8, 9, 10
提前致谢!
【问题讨论】:
我不是 Python 专家,但第三个(最终)打印输出对我来说并不像字典。只有值,没有键和值。 【参考方案1】:0, 1, 2, 3, 4, 6, 7, 8, 9, 10
是一个集合,而不是字典,字典将打印为key:value, key:value, ...
试试print(type(c))
,你会看到它打印的是<class 'set'>
而不是<class 'dict'>
也可以试试下面的
s = 1,2,3
print(type(s))
d = 'a':1,'b':2,'c':3
print(type(d))
你会看到类型不同
【讨论】:
以上是关于当我使用 set( list_a + list_b ) 它返回一个字典。集合自然返回字典吗?的主要内容,如果未能解决你的问题,请参考以下文章