我有一个文件想要循环执行。我的文件如下所示:
Hello Hello
A B C D
A B C D
B C D A
B C D A
C D A B
B C D A
Hello Bye
A C D B
C D A B
A C D B
D C A B
我只通过再见运行到空白行的循环。
它应该返回:
{(A, C, D, B): 2, (C, D, A, b):1, (D, C, A, B):1}
有没有一种方法我可以称之为“全部”,它将添加所有排列?
我想这样做而不使用任何导入。
到目前为止,我的函数如下所示:
# input_word = Hello or Bye
def file_to_dict (file, input_word):
new_dict = {}
new_list = []
flag = False
for line in f:
if 'Hello' in line:
continue
if not line.strip():
continue
lElts = tuple(line.split(' '))
if lElts in dRet:
dRet[lElts] += 1
else:
dRet[lElts] = 1
return dRet
是否有继续的替代方法?
现在,这给了我一个错误:
ValueError: I/O operation on closed file
最佳答案
大量的逻辑错误...建议您检查elif
的工作方式
def f_to_dict(f):
dRet = {}
for line in f:
if 'Hello' in line:
continue
if not line.strip():
continue
lElts = tuple(line.split(' '))
if lElts in dRet:
dRet[lElts] += 1
else:
dRet[lElts] = 1
return dRet