繁体   English   中英

将集合分为集合列表

[英]Breaking a Set into a List of Sets

我正在尝试读取文本文件,并将文件内的数字对变成一组列表。

这是我的文本文件的外观:

4 #Number of pairs  
1 2
4 5
2 3
3 4

我已经能够将文本文件中的数据转换为列表,然后将其转换为集合,但最终却得到了一个庞大的集合,而不是像我想要的那样集合集。

这是我的代码当前的样子:

Input_File = input("Enter your file: ").lower()
with open(Input_File, 'r') as f:
    first_line = f.readline()
    data = f.read().splitlines()

set_of_pairs = set(data)
print(set_of_pairs)

电流输出:

{'1 2', '2 3', '4 5', '3 4'}

所需输出:

[{'1 2'}, {'2 3'}, {'4 5'}, {'3 4'}]

如果您确实想要一个单元素集的列表(似乎不太有用),则可以编写:

Input_File = input("Enter your file: ").lower()
with open(Input_File, 'r') as f:
    first_line = f.readline()
    data = f.read().splitlines()

set_of_pairs = [{line} for line in data]
print(set_of_pairs) #=> [{'1 2'}, {'2 3'}, {'4 5'}, {'3 4'}]

但是,您似乎更希望获得一组每个包含两个整数的集合的列表,如下所示:

Input_File = input("Enter your file: ").lower()
with open(Input_File, 'r') as f:
    first_line = f.readline()
    data = f.read().splitlines()

set_of_pairs = [{int(n) for n in line.split()} for line in data]
# Note that the order of pairs is not guaranteed
print(set_of_pairs) #=> [{1, 2}, {2, 3}, {4, 5}, {3, 4}]

甚至是元组列表:

Input_File = input("Enter your file: ").lower()
with open(Input_File, 'r') as f:
    first_line = f.readline()
    data = f.read().splitlines()

set_of_pairs = [tuple(line.split()) for line in data]
print(set_of_pairs) #=> [(1, 2), (2, 3), (4, 5), (3, 4)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM