生活随笔
收集整理的這篇文章主要介紹了
Python中歌词解析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
分析:
1.對于歌詞解析這個事情,本質上就是對字符串進行切片。
2.首先要講時間與歌詞分開
3.將時間的24時格式轉為數字形式,作為字典的key,而歌詞作為字典的value
可以直接使用:dict[key] = value
幾個小技巧的:
(1)由于歌詞的排序不同,但是可以肯定的是,按列切割后的倒數第一個必定是歌詞
(2)歌詞時間是打亂的,我們取第一個時間
(3)將分割號的字典轉為列表排序? ??
#/user/bin/env/python
#-*- coding:utf-8 -*-
'''
author:baizhou
'''musicLrc = """[00:03.50]傳奇
[00:19.10]作詞:劉兵 作曲:李健
[00:20.60]演唱:王菲
[00:26.60]
[04:40.75][02:39.90][00:36.25]只是因為在人群中多看了你一眼
[04:49.00]
[02:47.44][00:43.69]再也沒能忘掉你容顏
[02:54.83][00:51.24]夢想著偶然能有一天再相見
[03:02.32][00:58.75]從此我開始孤單思念
[03:08.15][01:04.30]
[03:09.35][01:05.50]想你時你在天邊
[03:16.90][01:13.13]想你時你在眼前
[03:24.42][01:20.92]想你時你在腦海
[03:31.85][01:28.44]想你時你在心田
[03:38.67][01:35.05]
[04:09.96][03:39.87][01:36.25]寧愿相信我們前世有約
[04:16.37][03:46.38][01:42.47]今生的愛情故事 不會再改變
[04:24.82][03:54.83][01:51.18]寧愿用這一生等你發現
[04:31.38][04:01.40][01:57.43]我一直在你身旁 從未走遠
[04:39.55][04:09.00][02:07.85]"""Lrc = {}
# 按行切割
musicLrc_list = musicLrc.splitlines()for Lrcline in musicLrc_list:# 以"]"為分隔符,進行切割Lrcline_list = Lrcline.split(']')for index in range(len(Lrcline_list)-1):timeStr= Lrcline_list[index][1:]# print("timeStr=", timeStr,end=" ")timeLrc = timeStr.split(":")# print("timeLrc=",timeLrc)time1 = float(timeLrc[0])*60 + float(timeLrc[1])Lrc[time1] = Lrcline_list[-1]# print(Lrc)# 對字典Lrc中的key進行排序
keyList = []
for key in Lrc:keyList.append(key)keyList.sort()# 根據用戶輸入的時間,去除對應的歌詞,此處寫為死循環
while 1:getTime = float(input("請輸入一個時間:"))# 遍歷key中的時間進行對比for n in range(len(keyList)):tempTime = keyList[n]if getTime < tempTime:break# 當將n = 0時,設為時間太短,其他的輸出n前面一個key對應的歌詞if n == 0:print("時間太短")else:print(Lrc[keyList[n-1]])
總結
以上是生活随笔為你收集整理的Python中歌词解析的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。