![](/img/trans.png)
[英]List - breaking out a list of tuples into specific set size, but the size of the sets doesn't have to be the same
[英]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.