簡體   English   中英

Python - 如何為列表中的文本着色?

[英]Python - how can I colour text in a list?

也許這是使用 ANSI 的正常行為,但下面我有一個字符串變量列表。 其中一個我想要不同的顏色。 如果我嘗試使用 ANSI 更改字符串變量的顏色,它就不再識別它了。

a="\033[92m a"
#a="a"

list1 = [a, "b", "c", "d", "e"]
list2=[]

for i in list1:
    if i=="a":
        list2.append(i)

print(list2)

結果: []

現在,如果我去掉 ANSI,它就可以工作了

#a="\033[92m a"
a="a"

list1 = [a, "b", "c", "d", "e"]
list2=[]

for i in list1:
    if i=="a":
        list2.append(i)

print(list2)

結果:['a']

關於如何使其與顏色一起使用的任何想法?

你的問題不是顏色; 這是if語句; 您正在將項目"\033[92m a""a"進行比較,但它們不相等。

從根本上講,您正在混合業務邏輯和表示層; 你能把它們分開嗎?

也許是這樣的:

from dataclasses import dataclass

@dataclass
class Record:
    value: str
    emph: int

    def as_ansi(self):
        if self.emph:
            return f"\033[92m{self.value}\033[0m"
        else:
            return self.value

records = [
    Record('a', True),
    Record('b', False),
    Record('c', False),
]

for r in records:
    if r.value == "a":
        print(r.as_ansi())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM