Python len(set()的解释
快速提问,我正在用Python编写一个小程序,并且正在寻找一种方法来创建一个条件,即如果4个数字的输入具有我想要的相同len,则只允许输入4个数字,并确保其中的所有数字都是唯一的。 在网上搜索了一段时间后,我发现有几个人给出了相同的解决方案,在我的例子中是Python len(set()的解释,python,Python,快速提问,我正在用Python编写一个小程序,并且正在寻找一种方法来创建一个条件,即如果4个数字的输入具有我想要的相同len,则只允许输入4个数字,并确保其中的所有数字都是唯一的。 在网上搜索了一段时间后,我发现有几个人给出了相同的解决方案,在我的例子中是len(set(input))==size(我号码的大小) 它工作得很好,但我无法理解它到底是如何工作的,我想知道。 我还尝试从中删除len,但它仍然有效,因此我不知道这段小代码中的每件事情会产生什么影响 因此,即使它允许我创建一个条件,确保4
len(set(input))==size
(我号码的大小)
它工作得很好,但我无法理解它到底是如何工作的,我想知道。
我还尝试从中删除len
,但它仍然有效,因此我不知道这段小代码中的每件事情会产生什么影响
因此,即使它允许我创建一个条件,确保4个数字中的每一个都是唯一的,如果有人能向我解释它是如何工作的,我也会喜欢它
提前谢谢
附言:如果有人想知道我在练习什么,我会制作自己版本的牛和公牛。因此,给定一个使用random.sample的随机数,用户必须尝试猜测该数字是什么。我提到的条件是在用户输入时使用的。A是一种数据结构,用于:
构建和操作唯一元素的无序集合
这些集合也必须是可散列的。但我们很幸运:字符串和字符是可散列的
关键是,如果我们构造一个集合形式集合(['1'、'4'、'1'、'5'、'2'])
,它将因此构造一个唯一元素的集合。因此,在这里添加两次'1'
没有任何区别,结果是集(['1','4','5','2'])
(或者更方便地编写{'1','4','5','2'}
)。使用len(…)
我们可以获得集合的大小。因此,该集合的大小是输入的唯一字符数
因此,如果我们写len(set(some_string))
我们将首先把一个字符串转换成一个集合。这是可能的,因为字符串是字符的一个iterable。因此Python将字符串视为有序的字符集合<代码>'abc',是'a'
、'b'
和'c'
的集合。因此,每个数字都被视为一个元素并添加到集合中
但第二次添加相同的数字没有效果。这意味着我们得到了一个集合,每个数字加一次。然后通过计算
len(..)
得到唯一位数。然后,我们可以将该数字与给定的数字进行比较。在Python中,每个输入都是一个字符串,可以转换为字符列表。当列表转换为集合时,它会保留唯一的元素
因此,当代码将数字串转换为一个集合时,它只保留唯一的数字。然后,当您找到长度时,它返回唯一位数 一个集合只能包含唯一的元素。因此
len(set(x))
告诉您x
的唯一元素集的大小。您所说的“它仍然有效”是什么意思set(input)=size
不会告诉你input
中唯一项的数量是否等于size
。你真的删除了len
,还是你的意思是说你删除了set
?你说得对,Barmar,我测试它时可能是巧合。既然我真的不明白为什么,我就错把它当成了工作,但事实上它错了:)嘿!非常感谢你的解释!继续python idle来测试这些,并完全理解它现在是如何工作的!谢谢谢谢你的解释!在对这里给出的答案进行了pythonidle测试之后,我完全理解了它的工作原理!谢谢