要麼你可以改變播放,這樣的而不是字符串,它是一個整數(例如,以秒爲歌曲的長度),你轉換成用於顯示的字符串,並測試從那裏,或者,在測試中,你可以播放帶,並轉換成它的長度在幾秒鐘內,像這樣:
def songLength(playback):
seconds = playback.split(':')
lengthOfSong = int(seconds[0]) * 60 + int(seconds[1])
return lengthOfSong
這將給以下結果:
>>> playback = '04:30'
>>> songLength(playback)
270
我不熟悉的特定數據結構你正在使用,但如果你可以迭代這些,你可以做類似的事情這:
def longestPossible(array, maxLength):
longest = 0
songName = ''
for song in array:
lenSong = songLength(song.playback) # I'm formatting song's playback like this because I'm not sure how you're going to be accessing it.
if maxLength >= lenSong and (maxLength - lenSong) < (maxLength - longest):
longest = lenSong
songName = song.title
if longest != 0:
return songName
else:
return '' # Empty strings will evaluate to False.
我還沒有測試過這個,但我認爲這應該至少讓你在正確的軌道上。有更多Pythonic這樣做的方式,所以永遠不要停止改進你的代碼。祝你好運!