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

如何修改Python代码输出完整单词而非首字母并按指定规则排序

解决思路与完整代码

咱们先梳理你现有代码的核心问题:你只提取了每个单词的首字母来排序,所以得到的是首字母列表,既没处理完整单词,也没做去重操作。接下来一步步修改,每一步都讲得明明白白:

步骤1:安全读取文件中的所有单词

用with语句打开文件是最稳妥的方式,它会自动帮你关闭文件,不用手动写close(),避免忘记关文件导致的问题:

# 以只读模式打开文件
with open("Words.txt", 'r') as file_words:
    words_list = []
    # 逐行读取文件内容
    for line in file_words:
        # 把每行按空格分割成单个单词,逐个加入列表
        for word in line.split():
            words_list.append(word)

步骤2:提取唯一单词

文件里可能存在重复单词,咱们用**集合(set)**来去重——集合的特性就是内部不会有重复元素。之后再把集合转回列表,方便后续排序:

# 列表转集合去重,再转回列表
unique_words = list(set(words_list))

如果需要保留单词第一次出现的顺序(题目没要求的话可跳过),可以用这种更直观的写法:

unique_words = []
for word in words_list:
    if word not in unique_words:
        unique_words.append(word)

步骤3:按要求排序

题目要求大写单词优先于小写(比如The排在the前面),其实Python的字符串默认排序刚好符合这个规则:大写字母的ASCII码范围是65-90,小写字母是97-122,大写整体比小写的数值小,所以直接用sort()就能实现需求:

# 对唯一单词列表进行排序
unique_words.sort()

完整程序代码

把上面的步骤整合起来,就是完整的可运行代码:

# 读取文件并收集所有单词
with open("Words.txt", 'r') as file_words:
    words_list = []
    for line in file_words:
        for word in line.split():
            words_list.append(word)

# 去重得到唯一单词集合
unique_words = list(set(words_list))

# 按要求排序
unique_words.sort()

# 输出最终结果
print(unique_words)

结果验证

用你提供的测试文本The quick brown fox jumps over the lazy dog运行程序,会输出:
['The', 'brown', 'dog', 'fox', 'jumps', 'lazy', 'over', 'quick', 'the']
完全符合你的期望输出。

额外小技巧

如果文件里的单词带标点(比如dog.),可以用word.strip('.,!?')去掉单词首尾的标点符号,处理更干净:

# 修改读取单词的代码,添加标点处理
for word in line.split():
    # 去掉首尾的常见标点
    clean_word = word.strip('.,!?')
    words_list.append(clean_word)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:10:21