下面的代码可以工作,虽然我需要相同的功能,但我需要使用元组,而不是使用集。有人能帮上忙吗?
word = {'h','e','l','l','o'}
letters = {'a','b','c','l','h'}
remainder = word - letters
print (remainder)感谢您花时间阅读这篇文章。
发布于 2017-08-05 22:15:42
由于元组没有减法运算符,因此可以使用可快速转换为元组的生成器表达式。这段代码从word中的值构造了一个元组,但省略了letters中的值。与使用集合相比,这样做的一个优点是可以保证项目在word中保持其顺序。主要缺点是对于大的元组/集合,它的速度要慢得多,具有时间复杂性O(n**2),而不是O(n)的集合解决方案(如果两个元组/集合的大小都是n)。另一件要注意的事情是,这段代码保留了所有在word中但不在letters中的重复值,而set解决方案删除了重复的值--这可能是一件好事,也可能是件坏事,具体取决于这一点。
word = ('h','e','l','l','o')
letters = ('a','b','c','l','h')
remainder = tuple(v for v in word if v not in letters)
print(remainder)https://stackoverflow.com/questions/45522853
复制相似问题