You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用colorama库实现打印排序列表时指定元素标红的问题

实现指定都道府县条目红显的修改方案

核心修改逻辑

  • 初始化colorama时开启autoreset=True,打印完红色内容后会自动恢复默认颜色,避免后续输出全部变红
  • 先校验用户输入的都道府县是否存在于列表中,不存在直接输出提示
  • 遍历全量排序结果打印时,匹配到目标条目就调用Fore.RED设置红色输出,其余内容保持默认样式

修改后完整代码

import colorama
from colorama import Fore, Back, Style
# 初始化colorama,开启自动颜色复位
colorama.init(autoreset=True)

table = []
f = open("population.csv", "r")
for line in f :
    line = line.rstrip("\r\n")
    field = line.split(",")
    table.append(field) ##### field is a list
f.close()

#AVERAGE AGE MATH FOR EACH PREFECTURE
agelist = [ "Age" ]
ag = 2.5
for i in range(1, len(table[1])) :
    agelist.append(ag)
    ag += 5

#PRINT AVERAGE AGE LIST
prefage = []
for pref in range(1, len(table)) :
    sum = 0
    asum = 0
    ysum = 0

    for age in range(1, len(table[1])):
        sum += int(table[pref][age])
        asum += int(table[pref][age]) * agelist[age]
    average = round(asum / sum, 1)

    for age in range(1, 5):
        ysum += int(table[pref][age])
        yave = round(ysum*100 / sum, 1)   
    prefage.append([(table[pref][0]), str(yave)])

#SORT AVARAGE IN DESCENDING ORDER
n = len(prefage)
while n > 1 :
    for p in range(0, n - 1) :
        if prefage[p][1] < prefage[p+1][1] :
            prefage[p], prefage[p+1] = prefage[p+1], prefage[p]
    n = n -1 

print("MINORITY RATIO IN DESCENDING ORDER:")
for pref in range(0, len(prefage)) :  
        print(prefage[pref][0].rjust(10), end="  ")  
        for avnum in range(1, len(prefage[0])) :    
            print(prefage[pref][avnum].rjust(10))

print()
prefcheck = input("Choose a prefecture: ")
# 先判断输入的都道府县是否存在
pref_exists = any(prefcheck == item[0] for item in prefage)
if not pref_exists:
    print("Sorry, no prefecture with that name")
else:
    print("\nMINORITY RATIO IN DESCENDING ORDER WITH SELECTED PREFECTURE IN RED")
    for pref_item in prefage:
        # 匹配到目标条目则用红色打印
        if pref_item[0] == prefcheck:
            print(Fore.RED + pref_item[0].rjust(10), end="  ")
            print(Fore.RED + pref_item[1].rjust(10))
        else:
            print(pref_item[0].rjust(10), end="  ")
            print(pref_item[1].rjust(10))

内容的提问来源于stack exchange,提问作者clicktac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:15:09