【问题标题】:How to return a list as frozenset type?如何将列表作为frozenset 类型返回?
【发布时间】:2021-01-27 04:07:34
【问题描述】:

我想返回一个作为frozenset类型的列表,它的类型将通过返回函数来检查,如下所示

frozentSet = functionName(list1, list2)

if type(frozentSet) == frozenset:
    print("Return value is a frozenset")
else:
    print("Retrun value is not a frozenset")

每当我将任何列表作为“frozenset”返回时,它都会给出如下结果,而我想返回上面给出的 if 条件。

return frozenset(['a','b','c','d','e','f'])

Output:
['f']
['b']
['a']
['d']
['e']
Returned value is not a frozenset

感谢您的及时回复。请看下面的完整代码。

def returnFrozenset(listA):
    frsA = frozenset(listA)
    return frsA
 
if __name__ == '__main__':
   lst1_count = int(input().strip())
   lst1 = []

for _ in range(lst1_count):
    lst1_item = input()
    lst1.append(lst1_item)

   isFrozenSet = returnFrozenset(lst1)
   print("Returned value is {1} frozenset".format(isFrozenSet, "a" if type(frset) == frozenset else "not a"))

【问题讨论】:

  • 不,您发布的代码绝对有效(尽管使用isinstance 更好地执行类型检查)。请发布对您而言失败的实际代码

标签: python frozenset


【解决方案1】:

也许我们可以用更多的代码来帮助你,我和你做的一样,一切都很好。

示例代码:

def func(list1):
    return frozenset(list1)

if __name__ == "__main__":
    frozentSet = func(['a','b','c','d','e','f'])
    if type(frozentSet) == frozenset:
        print("Return value is a frozenset")
    else:
        print("Retrun value is not a frozenset")

输出:

>> frozenset({'a', 'd', 'b', 'f', 'e', 'c'})
>> Return value is a frozenset

【讨论】:

  • 我认为这样做没有意义。该函数要么成功并返回 frozenset 对象,要么由于不可散列的类型而引发异常。也就是函数本身应该够用了。你也可以捕获异常,这样可以确保对象不是frozenset(如果你明确需要知道的话)
  • 我知道这只是为了向他展示他提供给我们的代码量不足以解决他的问题,因为我使用他的相同代码并且一切正常并给他一个例子它的工作
  • 我已经在我的主代码下面添加了完整的代码。
猜你喜欢
  • 2021-07-29
  • 2013-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
  • 2015-05-23
  • 2018-06-15
相关资源
最近更新 更多