Python集合问题

s3=set(1231)
set这个函数的参数必须是一个序列,当参数为单独整数时,系统会报错
请问这个1231我认为它是四个整数,并不单独,所以我以为它应该是可以生成一个集合的,元素分别为123。这个思路问题出在哪里呢。应该怎么思考呢。

因为set的定义是:

class set([iterable])

它不需要单个的值,而需要一个可迭代的值。而整数1231并不是可迭代的值所以会报错
依题主的想法可以先把其转换为字符串类型在进行操作

img


我也是现在才注意到这个问题发现不只是set()对于其他的比如list() tuple()也一样的

img


真是个好问题一起进步

既然都那么想了不妨再多想一些,即你认为输入的数每个都是单独的。入s3 = set(12345...n),那么s3 = {1,2,3,4,5,...,n}。那我想创建一个单元素多位数集合 s3 = {12345678910}该怎么写呢,我们可以规定创建单元素多位数集合就给set加一个参数alone。这样s3 = set{12345678910,alone}就等于s3 = {12345678910},那这是你自己写的函数别人要用就要按照你定的规则。所以,你用别人的轮子就应按照造轮子的人的想法来,没必要太纠结

或许是因为1231python认为是int类型,而不是str?

请看👉 :Python集合用处
同时,你还可以查看手册:python- 集合 中的内容

照你这样想, 我是不是也可以认为他是 12 , 31两个数 或者 1,23,1 三个数,这不乱套了。