我正在尝试创建一个soduko样式的程序。 将记事本/ word文档上传到Python中,我希望Python检查:
每行(行)具有相同的字符数 每列具有相同的字符数 没有字符在列或行中重复两次 每个字符使用一次,每列和每行只使用一次
上传的文件可以是数字soduko或字母soduko。
到目前为止,我已设法加载,打开并阅读文档,并将文档的每一行作为列表附加。下面我将展示我的编码以便附加到列表中:
my_list = [line.strip() for line in open(filename)]
print (my_list)
但这会把我所有的行放在一个更大的列表中。 例如,如果我的文件是:
1 2 3
2 3 1
3 1 2
它会读取my_list,如下所示:[['1 2 3'], ['2 3 1'], ['3 1 2']]
我对Python比较陌生,不知道如何从列表中的列表中计算单个项目,所以这对我来说非常复杂。
有关如何进行/改变我的编码以使我更容易的任何建议或提示?
答案 0 :(得分:1)
你可以split
每行都有自己的理解:
my_list = [[x for x in line.strip().split(' ')] for line in open(filename)]
请注意,此oneliner与原始代码非常相似,不会关闭它打开的文件句柄。一种更安全的方法是单独打开它:
with open(filename) as f:
my_list = [[x for x in line.strip().split(' ')] for line in f]