试图理解在我的 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, A
或num_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_sets
,for
循环在每次迭代时为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
的子集。