我有一个带有数字的txt文件。
每两个数字都是“一个案例”(例如21\n 3\n 45\n 7\n
:21
和3
将是一个案例,45
和7
将是另一个案例,等等。)
有十个案例。我编写了一个Python脚本,可以读取txt文件并将其中的字符串转换为整数,它们就是整数。
现在我需要打印一个句子,其中包含每个案例的第一个数字和第二个数字。我不想写十句话,有没有办法修复这段代码
file = open('problemCases.txt', 'r')
fileLst = file.readlines()
fileLst = [int(i) for i in fileLst]
def main():
lst = []
probCase = (fileLst[0], fileLst[1])
lst.append(probCase)
probCase = (fileLst[2], fileLst[3])
lst.append(probCase)
probCase = (fileLst[4], fileLst[5])
lst.append(probCase)
probCase = (fileLst[6], fileLst[7])
lst.append(probCase)
probCase = (fileLst[8], fileLst[9])
lst.append(probCase)
probCase = (fileLst[10], fileLst[11])
lst.append(probCase)
probCase = (fileLst[12], fileLst[13])
lst.append(probCase)
probCase = (fileLst[14], fileLst[15])
lst.append(probCase)
probCase = (fileLst[16], fileLst[17])
lst.append(probCase)
probCase = (fileLst[18], fileLst[19])
lst.append(probCase)
# case 1
print(
"If together they have ",
lst[0][0],
" shirts, and Dude1 has ",
lst[0][1],
" more shirts than Dude2.")
print("Dude1 has: ", (lst[0][0]-lst[0][1])/2+lst[0][1])
print("Dude2 has: ", (lst[0][0]-lst[0][1])/2)
答案 0 :(得分:0)
循环很棒
要构建列表,只需以步长2
循环输入lst = []
for i in xrange(0, len(fileLst), 2):
lst.append((fileLst[i], fileLst[i + 1]))
编辑:
正如Kevin建议的那样,我们也可以利用迭代器来避免烦人(毕竟这是python)列表索引:
for i, j in enumerate(range(1, len(fileLst)+1)):
lst.append(fileLst[i], fileLst[j])
您可以为打印使用类似的逻辑