首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

Python 合併文本文件示例:按姓名排序輸出員工獎金

     編輯:C++ 入門

任務描述

兩個文件:`employee.txt`(工號 姓名),`bonus.txt`(工號 獎金)。合併輸出:工號 姓名 獎金,按姓名首字母排序。

數據樣例

employee.txt:
100 Jason Smith
200 John Doe
300 Sanjay Gupta
400 Ashok Sharma

bonus.txt:
100 $5,000
200 $500
300 $3,000
400 $1,250

Python 實現


# coding=utf-8
with open("bonus.txt") as f1:
    bonus = {line.split()[0]: line.split()[1] for line in f1}

with open("employee.txt") as f2:
    emps = [line.split() for line in f2]  # [id, first, last]

# 按姓名首字母排序(這裡以 first name 為例)
emps.sort(key=lambda x: x[1])

for e in emps:
    emp_id = e[0]
    if emp_id in bonus:
        print(f"{emp_id} {e[1]} {e[2]} {bonus[emp_id]}")

輸出結果

100 Jason Smith $5,000
200 John Doe $500
300 Sanjay Gupta $3,000
400 Ashok Sharma $1,250

關鍵點

  • 用字典存儲 bonus 實現 O(1) 查找。
  • `list.sort(key=...)` 靈活指定排序鍵。
  • `with` 語句自動關閉文件,異常安全。
  • 若要求按姓氏排序,`key=lambda x: x[2]`。

Shell 替代方案

題目原意可能是 Shell 腳本(`join` + `sort`),但 Python 更易讀、跨平台、易維護。

總結

Python 處理文本合併極其簡潔:讀取→字典映射→列表排序→格式化輸出。幾行代碼解決實際數據處理需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved