← 返回
未分类

jm-jsjkxyjs01-liu-801

user_1d0acb68
未分类 community v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 99
下载
💾 0
安装
1
版本
#latest

概述

\# 创建脚本文件

cat > \~/Desktop/word\_sorter.py << 'EOF'

\#!/usr/bin/env python3

\# -\- coding: utf-8 -\-

"""

单词按首字母排序工具

支持中英文、去重、大小写处理

"""

import re

import sys

def extract\_words(text):

"""从文本中提取单词(支持中英文)"""

# 英文单词(字母开头)

english\_words = re.findall(r'\[A-Za-z]+', text)

# 中文单词(2-4个中文字符)

chinese\_words = re.findall(r'\[\\u4e00-\\u9fff]{2,4}', text)

return english\_words + chinese\_words

def sort\_words(words, reverse=False, case\_sensitive=False, remove\_duplicates=True):

"""排序单词"""

# 去重

if remove\_duplicates:

words = list(dict.fromkeys(words)) # 保持顺序的去重

# 排序

if case\_sensitive:

words.sort(reverse=reverse)

else:

words.sort(key=str.lower, reverse=reverse)

return words

def group\_by\_first\_letter(words):

"""按首字母分组"""

groups = {}

for word in words:

if word and word\[0]:

first\_char = word\[0].upper() if word\[0].isalpha() else word\[0]

if first\_char not in groups:

groups\[first\_char] = \[]

groups\[first\_char].append(word)

return groups

def main():

print("\\n" + "="\*50)

print("📝 单词按首字母排序工具")

print("="\*50)

if len(sys.argv) < 2:

print("\\n使用方法:")

print(" 1. 直接传入单词: python word\_sorter.py apple banana cat")

print(" 2. 从文件读取: python word\_sorter.py --file words.txt")

print(" 3. 交互模式: python word\_sorter.py --interactive")

print("\\n选项:")

print(" --reverse 降序排列")

print(" --case-sensitive 区分大小写")

print(" --no-dedupe 保留重复词")

print(" --group 按首字母分组显示")

print("\\n示例:")

print(" python word\_sorter.py apple Cat banana dog cat")

print(" python word\_sorter.py 苹果 香蕉 橙子 葡萄")

print(" python word\_sorter.py --group 北京 上海 广州 深圳")

print()

sys.exit(1)

# 解析参数

words = \[]

use\_group = False

reverse = False

case\_sensitive = False

remove\_duplicates = True

args = sys.argv\[1:]

if '--group' in args:

use\_group = True

args.remove('--group')

if '--reverse' in args:

reverse = True

args.remove('--reverse')

if '--case-sensitive' in args:

case\_sensitive = True

args.remove('--case-sensitive')

if '--no-dedupe' in args:

remove\_duplicates = False

args.remove('--no-dedupe')

# 获取单词

if '--interactive' in args:

text = input("\\n请输入单词或文本: ")

words = extract\_words(text)

elif '--file' in args:

file\_idx = args.index('--file')

if file\_idx + 1 < len(args):

with open(args\[file\_idx + 1], 'r', encoding='utf-8') as f:

words = extract\_words(f.read())

else:

# 直接传入单词

words = args

if not words:

print("❌ 未找到有效单词")

sys.exit(1)

# 排序

sorted\_words = sort\_words(words, reverse, case\_sensitive, remove\_duplicates)

# 输出结果

print(f"\\n📊 输入单词数: {len(words)}")

if remove\_duplicates and len(sorted\_words) < len(words):

print(f"📊 去重后: {len(sorted\_words)} 个")

print(f"\\n{'='\*50}")

print("📝 排序结果:")

print('='\*50)

if use\_group:

groups = group\_by\_first\_letter(sorted\_words)

for letter in sorted(groups.keys()):

print(f"\\n【{letter}】({len(groups\[letter])}个)")

for word in groups\[letter]:

print(f" • {word}")

else:

for i, word in enumerate(sorted\_words, 1):

print(f"{i:3}. {word}")

# 统计信息

print(f"\\n{'='\*50}")

print(f"📈 统计:")

print(f" 首字母分布: {len(group\_by\_first\_letter(sorted\_words))} 个字母")

if len(sorted\_words) > 0:

print(f" 最长单词: {max(sorted\_words, key=len)} ({len(max(sorted\_words, key=len))}字符)")

print('='\*50)

if \_\_name\_\_ == "\_\_main\_\_":

main()

EOF

\# 赋予执行权限(Windows 不需要)

\# chmod +x \~/Desktop/word\_sorter.py

版本历史

共 1 个版本

  • v1.0.0 Initial release 当前
    2026-05-18 20:06 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

education

explain-code

edwininau
用可视化图表和类比解释代码。在解释代码如何工作、教授代码库或用户询问如何工作时使用
★ 6 📥 9,002
education

Language Learning Tutor

chipagosfinest
AI语言导师,通过对话、词汇练习、语法课程、抽认卡及沉浸式练习,助您学习任意语言。适用于学习新语言、练词汇、学语法、翻译、会话练习、旅行准备、习语俚语或改善发音。支持包括中、英、日、韩、法、德、西等在内的100多种语言。
★ 30 📥 8,986
education

Thinking Partner

itsflow
通过提问探索复杂问题的协作思考伙伴
★ 51 📥 10,069