带有TUPLES的Python设置函数

时间:2017-08-05 14:11:25

标签: python list set tuples

下面的代码有效,虽然我需要相同的功能,但我不需要使用集合,而是需要使用元组。有人可以帮忙吗?

word = {'h','e','l','l','o'}
letters = {'a','b','c','l','h'}
remainder = word - letters
print (remainder)

感谢您花时间阅读本文。

1 个答案:

答案 0 :(得分:3)

由于元组没有减法运算符,因此可以使用快速转换为元组的生成器表达式。此代码根据word中的值构造元组,但省略了letters中的值。这比使用集合的一个优点是保证项目在word中保留其顺序。主要缺点是对于大元组/集合而言要慢得多,时间复杂度O(n**2)而不是O(n)的集合解决方案(如果两个元组/集合的大小都为n })。还有一点需要注意的是,此代码保留wordletters中没有的任何重复值,而set解决方案会删除重复项 - 这可能是好事还是坏事,具体取决于。< / p>

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)