【发布时间】:2020-02-14 08:58:25
【问题描述】:
您好,我是 python 新手,刚刚开始编写基本的 python 脚本。我决定编写一个密码生成器程序。我遇到了random.sample() 和itertools.combinations() 函数。我想知道它们之间的区别。我已阅读文档并得出以下结论:
1. random.sample() 将返回总体中唯一组合的列表,前提是总体中没有重复值。
2. combinations() 还将返回一个 (p,r) 可能组合的元组,其中 r 是长度。 并且有这一行,“元素根据其位置被视为唯一,而不是它们的值。因此,如果输入元素是唯一的,则每个组合中都不会出现重复值。” 我不明白。我假设它说输入元素必须是唯一的才能获得唯一的组合
所以我得出的最终结论是两者都是一样的。我想知道我是对还是错(请解释)。谢谢你。
【问题讨论】:
-
“元素根据其位置而非值被视为唯一。因此,如果输入元素是唯一的,则每个组合中都不会出现重复值”。打印并检查
list(combinations(lst, 2))输出的差异lst=[1,2,3,4]和lst=[1,2,4,4] -
我试过这个...谢谢,明白意思。 lst 中有 2 个 4,即使这样它们也被视为不同的组合,因为两者的位置不同。
标签: python random combinations itertools