python-3.x - 如何在不将其类型化列出的情况下在集合中获取输出?
问题描述
我正在从文本文件中读取输入,在某些情况下,我必须执行一些操作。输入文件的第一行包含测试用例的数量。下一行包含输入的大小。下一行由元素组成。
在接受输入并遵循正确的操作之后。由于需要维护订单,因此我正在对生成的输出进行排序。
import sys
test_case = int(sys.stdin.readline())
t = 0
while t < test_case:
len_a, len_b = map(int, input().split())
A = set()
B = set()
for element in sys.stdin.readline().split():
A.add(int(element))
for element in sys.stdin.readline().split():
B.add(int(element))
operation = int(sys.stdin.readline())
if operation == 1: print(sorted(set(A.intersection(B))))
elif operation == 2: print(sorted(set(A.union(B))))
elif operation == 3: print(sorted(set(A.symmetric_difference(B))))
elif operation == 4: print(sorted(set(A.difference(B))))
elif operation == 5: print(sorted(set(B.difference(A))))
t += 1
预期的输出是这样的:
{10000、20000、30000}
{10000、20000、30000、40000、50000、60000、80000、90000}
{40000、50000、60000、80000、90000}
{40000、50000、60000}
{80000, 90000}
{}
但我得到:
[10000、20000、30000]
[10000、20000、30000、40000、50000、60000、80000、90000]
[40000、50000、60000、80000、90000]
[40000、50000、60000]
[80000, 90000]
放()
解决方案
我希望以下内容对您有所帮助。
代码
import sys
test_case = int(sys.stdin.readline())
t = 0
while t < test_case:
len_a, len_b = map(int, input().split())
A = set()
B = set()
for element in sys.stdin.readline().split():
A.add(int(element))
for element in sys.stdin.readline().split():
B.add(int(element))
operation = int(sys.stdin.readline())
if operation == 1: print(set(sorted(A.intersection(B))))
elif operation == 2: print(set(sorted(A.union(B))))
elif operation == 3: print(set(sorted(A.symmetric_difference(B))))
elif operation == 4: print(set(sorted(A.difference(B))))
elif operation == 5: print(set(sorted(B.difference(A))))
t += 1
编辑 (对于您的情况,为空集打印 {} 但我猜不建议这样做)
import sys
test_case = int(sys.stdin.readline())
t = 0
while t < test_case:
len_a, len_b = map(int, input().split())
A = set()
B = set()
for element in sys.stdin.readline().split():
A.add(int(element))
for element in sys.stdin.readline().split():
B.add(int(element))
operation = int(sys.stdin.readline())
if operation == 1:
if len(A.intersection(B))!=0:
print(set(sorted(A.intersection(B))))
else:
print('{}')
elif operation == 2:
if len(A.union(B))!=0:
print(set(sorted(A.union(B))))
else:
print('{}')
elif operation == 3:
if len(A.symmetric_difference(B))!=0:
print(set(sorted(A.symmetric_difference(B))))
else:
print('{}')
elif operation == 4:
if len(A.difference(B))!=0:
print(set(sorted(A.difference(B))))
else:
print('{}')
elif operation == 5:
if len(B.difference(A))!=0:
print(set(sorted(B.difference(A))))
else:
print('{}')
t += 1
我已经测试过了,工作正常。希望这能解决您的问题!
推荐阅读
- c# - xamarin.forms 呼叫挂起事件问题
- vba - 垂直合并单元格破坏宏
- c++ - 导入 .TLB 文件给出“无法打开源文件 x.tlh”
- python - 颜色条轴标签与刻度重叠 Matplotlib
- arcgis - 是否可以从对象而不是 .csv 或 .geojson 之类的文件中读取 ArcGIS CSVLayer Source?
- matlab - 如何在 MATLAB 中使用 IIR 滤波器的给定分子和分母系数过滤数据
- c# - 如何在 TFS 中创建不同的版本?
- html - 购买股票的自定义卡片CSS(百分比)
- ruby-on-rails - 使用 ruby 2.5.3 在特定站点上发出获取请求时出现超时错误
- python - 如何for循环通过html元素uisng python selenium单击页面中的每个元素?