回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在尝试打印一个列表中最接近的值,该列表提供用户输入。实际上,用户给我一个时间,我想检查这个值是否在时间表的列表中,否则我想增加分钟数,直到我解救列表的一个值,然后在30分钟的时间槽中打印时间。这是我的密码。你能帮我看看什么不管用吗?谢谢</p>
<pre><code>def print_specific_time():
f = open("Bus 6 Lugano Stazione.txt")
lines = f.readlines()
d = defaultdict(list)
start = lines.index("Monday\n")
stop = lines.index("Saturday\n")
time = "07.35"
hour = time[0] + time[1]
minutes = time[3:]
for line in lines[start:stop]:
line = line.strip(",")
line = line.replace("\n","")
line = line.replace(" ","")
line = line.split("|")
key = line[0]
if len(line) == 2:
d[key] += [line[1]]
if minutes not in d[hour]:
minutes = int(minutes) + 1
minutes = str(minutes)
print(minutes)
if minutes in d[hour]:
print(minutes)
print(hour,d[hour])
else:
if minutes == '59':
hour = int(hour)
hour = hour + 1
hour = "0" + str(hour)
minutes = "00"
d = dict(d)
for key in d.keys():
if key == hour:
print(key,d[key])
</code></pre>
<p>在文件里我有一个日程表的清单,都放在字典里了。以下是我正在处理的输出:</p>
<pre><code>{'06': ['11', '26', '41', '56'], '12': ['06', '36'], '11': ['06', '36'],
'07': ['11', '26', '41', '56'], '16': ['11', '26', '41', '56'], '14': ['06', '36'],
'17': ['11', '26', '41', '56'], '20': ['05', '35'], '15': ['06', '36', '56'],
'09': ['06', '36'], '21': ['05', '35'], '22': ['05', '35'], '23': ['05', '35'],
'19': ['11', '40'], '08': ['11', '26', '41'], '13': ['06', '36'], '10': ['06', '36'],
'18': ['11', '26', '41', '56']}
</code></pre>
<p>我解释得更好。例如,如果用户输入07.35这样的时间,我的程序应该打印07.41、07.56,而不打印其他内容(因为30分钟的时间槽中没有7.56之后的时间)。你能帮我查一下有什么问题吗?谢谢</p>
<p>编辑
好 啊。现在我可以打印07点钟的时隙(部分正确),但我不明白为什么python只在变量minutes等于'56'而不是列表中的'41'时打印它。。。。你知道吗</p>