将字符串格式化为制表格式 Python
Formatting strings to tabulature format in Python
我有很多字符串,例如 '---\n---\n---\n-0-'
和 '---\n---\n-3-\n---'
,我想像这样 并排 打印它们:
------
------
----3-
-0----
如何操作?
这是我的代码:
def formating_list_to_tab(note_list):
if 'E_0' in note_list:
return '---\n---\n---\n-0-'
elif 'F_0' in note_list:
return '---\n---\n---\n-1-'
elif 'F#_0' in note_list:
return '---\n---\n---\n-2-'
elif 'G_0' in note_list:
return '---\n---\n---\n-3-'
elif 'G#_0' in note_list:
return '---\n---\n---\n-4-'
elif 'A_0' in note_list:
return '---\n---\n---\n-5-'
elif 'A#_0' in note_list:
return '---\n---\n-1-\n---'
elif 'B_0' in note_list:
return '---\n---\n-2-\n---'
def print_tab():
note_list = []
for item in notes:
freq = detect_peak(*get_note_freq(item))
note_list.append(recognize_note(freq))
return note_list
note_array = print_tab()
opening_tab = 'G\nD\nA\nE'
for note in note_array:
note_into_tab = formating_list_to_tab(note)
opening_tab += note_into_tab
st.text(opening_tab)
这是我的结果:
G
D
A
E---
---
---
-2----
---
---
-5----
---
---
-0----
---
---
-0----
---
---
-2----
---
---
-0----
---
---
-0-
抱歉英语不好,谢谢你抽出时间来找我=)
Whosebug 系统要求我提供更多详细信息。为了显示字符串值,我正在使用 streamlit 库。
您不能追加到前面的行,您需要分别为每一行构建一个字符串,然后按顺序打印它们
def formating_list_to_tab(note_list):
# returns list of strings, one for each line
if 'E_0' in note_list:
return '---','---','---','-0-'
elif 'F_0' in note_list:
return '---','---','---','-1-'
elif 'F#_0' in note_list:
return '---','---','---','-2-'
elif 'G_0' in note_list:
return '---','---','---','-3-'
elif 'G#_0' in note_list:
return '---','---','---','-4-'
elif 'A_0' in note_list:
return '---','---','---','-5-'
elif 'A#_0' in note_list:
return '---','---','-1-','---'
elif 'B_0' in note_list:
return '---','---','-2-','---'
def print_tab():
note_list = []
for item in notes:
freq = detect_peak(*get_note_freq(item))
note_list.append(recognize_note(freq))
return note_list
note_array = print_tab()
g_line = 'G'
d_line = 'D'
a_line = 'A'
e_line = 'E'
for note in note_array:
# unpack list from function for each line
g_note,d_note,a_note,e_note = formating_list_to_tab(note)
g_line += g_note
d_line += d_note
a_line += a_note
e_line += e_note
# print each line
st.text(g_line + '\n' + d_line + '\n' + a_line + '\n' + e_line + '\n')
我有很多字符串,例如 '---\n---\n---\n-0-'
和 '---\n---\n-3-\n---'
,我想像这样 并排 打印它们:
------ ------ ----3- -0----
如何操作?
这是我的代码:
def formating_list_to_tab(note_list):
if 'E_0' in note_list:
return '---\n---\n---\n-0-'
elif 'F_0' in note_list:
return '---\n---\n---\n-1-'
elif 'F#_0' in note_list:
return '---\n---\n---\n-2-'
elif 'G_0' in note_list:
return '---\n---\n---\n-3-'
elif 'G#_0' in note_list:
return '---\n---\n---\n-4-'
elif 'A_0' in note_list:
return '---\n---\n---\n-5-'
elif 'A#_0' in note_list:
return '---\n---\n-1-\n---'
elif 'B_0' in note_list:
return '---\n---\n-2-\n---'
def print_tab():
note_list = []
for item in notes:
freq = detect_peak(*get_note_freq(item))
note_list.append(recognize_note(freq))
return note_list
note_array = print_tab()
opening_tab = 'G\nD\nA\nE'
for note in note_array:
note_into_tab = formating_list_to_tab(note)
opening_tab += note_into_tab
st.text(opening_tab)
这是我的结果:
G D A E--- --- --- -2---- --- --- -5---- --- --- -0---- --- --- -0---- --- --- -2---- --- --- -0---- --- --- -0-
抱歉英语不好,谢谢你抽出时间来找我=) Whosebug 系统要求我提供更多详细信息。为了显示字符串值,我正在使用 streamlit 库。
您不能追加到前面的行,您需要分别为每一行构建一个字符串,然后按顺序打印它们
def formating_list_to_tab(note_list):
# returns list of strings, one for each line
if 'E_0' in note_list:
return '---','---','---','-0-'
elif 'F_0' in note_list:
return '---','---','---','-1-'
elif 'F#_0' in note_list:
return '---','---','---','-2-'
elif 'G_0' in note_list:
return '---','---','---','-3-'
elif 'G#_0' in note_list:
return '---','---','---','-4-'
elif 'A_0' in note_list:
return '---','---','---','-5-'
elif 'A#_0' in note_list:
return '---','---','-1-','---'
elif 'B_0' in note_list:
return '---','---','-2-','---'
def print_tab():
note_list = []
for item in notes:
freq = detect_peak(*get_note_freq(item))
note_list.append(recognize_note(freq))
return note_list
note_array = print_tab()
g_line = 'G'
d_line = 'D'
a_line = 'A'
e_line = 'E'
for note in note_array:
# unpack list from function for each line
g_note,d_note,a_note,e_note = formating_list_to_tab(note)
g_line += g_note
d_line += d_note
a_line += a_note
e_line += e_note
# print each line
st.text(g_line + '\n' + d_line + '\n' + a_line + '\n' + e_line + '\n')