将字符串格式化为制表格式 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')