用于查找子集的输入差异



试图理解在我的 A、B 输入代码中需要num_sets,以便在 A 是基于输入的 B 的子集时获得 True 或 False。

T = int(input())
for num_sets in range(T):
num_sets, A = input(),set(input().split())
num_sets, B = input(),set(input().split())
print(A.issubset(B))

代码块在具有num_sets, Anum_sets, B时工作。当我将代码行作为A = input(),set(input().split())并且B = input(),set(input().split())它不起作用时,我收到一条错误消息,指出AttributeError: 'tuple' object has no attribute 'issubset'.

你不需要在循环中num_sets。当你写:

num_sets, A = input(),set(input().split())
num_sets, B = input(),set(input().split())

这与

num_sets = input()
A = set(input().split())
num_sets = input()
B = set(input().split())

在那之后你没有使用num_setsfor循环在每次迭代时为num_sets设置一个新值,所以这一切真正完成的是让你输入额外的一行,两次,然后忽略输入。

这没有按预期工作的原因:

A = input(),set(input().split())

是因为该赋值的右侧实际上是一个tuple,并且因为左侧不是,A得到了两个值。如果您用"1"回答第一个input()提示,用"2 3"回答第二个input(),则A的结果将是:

('1', {'2', '3'})

这不是set,所以A.issubset(B)给出一个错误。

我想你可能想要的是这个:

for num_sets in range(T):
A = set(input().split())
B = set(input().split())
print(A.issubset(B))

这将允许您输入两组值,并打印A是否是B的子集。

相关内容

  • 没有找到相关文章

最新更新