数据处理(第一部分):文本文件——数据的“电子笔记本” 📝

关键字

:文本文件读写、创建文件、追加内容、修改文件 内容详解: 文本文件是存数据的“基础容器”,Python操作它超简单:

  • 📖 读取文本文件:用open(路径, "r")打开,read()读全部内容,readlines()按行读:

读取整个文件

with open(“test.txt”, “r”, encoding=“utf-8”) as f: content = f.read() print(“文件内容:”, content)

按行读取

with open(“test.txt”, “r”, encoding=“utf-8”) as f: lines = f.readlines() print(“每行内容:”, lines) # 列表,每个元素是一行

  • ✍️ 创建文本文件:用"w"模式(覆盖旧文件): with open(“new_file.txt”, “w”, encoding=“utf-8”) as f: f.write(“这是新文件的第一行\n”) f.write(“这是第二行”)
  • 追加内容到文件:用"a"模式(在文件末尾加内容): with open(“new_file.txt”, “a”, encoding=“utf-8”) as f: f.write(“\n这是追加的第三行”)
  • ✏️ 修改文件内容:文本文件不能直接改某一行,要“读→改→写”:

步骤1:读文件内容

with open(“test.txt”, “r”, encoding=“utf-8”) as f: lines = f.readlines()

步骤2:修改第二行

lines[1] = “修改后的第二行\n”

步骤3:写回文件

with open(“test.txt”, “w”, encoding=“utf-8”) as f: f.writelines(lines)

类比:文本文件像“纸质笔记本”——读是“翻看笔记”,写是“新写一页”,追加是“在最后补写”,修改是“撕下来重写”~

二、集合:自动去重的“数据筛子”

集合:自动去重的“数据筛子” 🔍

关键字

:集合、去重、集合运算 内容详解: 集合是

{元素1, 元素2}

格式,特点是“无序、无重复”——像个“自动筛子”,放进去的重复数据会被过滤:

# 创建集合:自动去重
nums = {1,2,2,3,4,4,4}
print(nums)  # {1,2,3,4}(重复的2、4没了)

# 集合推导:快速生成集合(类似列表推导)
even_nums = {x for x in range(10) if x % 2 == 0}
print(even_nums)  # {0,2,4,6,8}

集合还支持

集合运算

(交集、并集、差集)——比如找两个列表的共同元素:

list1 = [1,2,3,4]
list2 = [3,4,5,6]
set1 = set(list1)
set2 = set(list2)
# 交集:共同元素
print(set1 & set2)  # {3,4}
# 并集:所有元素(去重)
print(set1 | set2)  # {1,2,3,4,5,6}
# 差集:set1有但set2没有的元素
print(set1 - set2)  # {1,2}

这在“去重”“数据对比”场景超实用!

三、数据处理(第二部分):CSV文件——表格数据的“搬运工”

数据处理(第二部分):CSV文件——Excel表格的“平替” 📈

关键字

:CSV文件、csv模块、表格数据处理 内容详解: CSV是“逗号分隔的文本文件”,像简化版Excel表格——Python用

csv

模块处理它:

  • 📥 读取CSV文件:用csv.reader(按行读)或csv.DictReader(按列名读): import csv

按列名读(CSV第一行是列名)

with open(“data.csv”, “r”, encoding=“utf-8”) as f: reader = csv.DictReader(f) for row in reader:

按列名取数据

print(f”姓名:{row[‘name’]},年龄:{row[‘age’]}”)

  • 📤 写入CSV文件:用csv.writercsv.DictWriter: data = [ {“name”: “张三”, “age”: 18}, {“name”: “李四”, “age”: 19} ] with open(“new_data.csv”, “w”, encoding=“utf-8”, newline="") as f:

指定列名

writer = csv.DictWriter(f, fieldnames=[“name”, “age”]) writer.writeheader() # 写列名行 writer.writerows(data) # 写数据行

  • 📊 分析CSV数据:结合列表推导/循环统计数据(比如算平均年龄): ages = [] with open(“data.csv”, “r”, encoding=“utf-8”) as f: reader = csv.DictReader(f) for row in reader: ages.append(int(row[“age”])) avg_age = sum(ages) / len(ages) print(“平均年龄:”, avg_age)

注意:CSV和Excel可以互相转换——Excel能打开CSV,Python处理CSV比直接处理Excel更简单!

四、字典:带标签的“高级数据容器”

字典:带标签的“数据收纳盒” 📛

关键字

:字典、dict函数、字典推导、嵌套字典 内容详解: 字典是

{键:值}

格式,像“带标签的抽屉”——用“键”(标签)快速找“值”(内容):

  • 🔨 用dict函数创建字典

用键值对参数创建

person = dict(name=“张三”, age=18)

用列表+元组创建

person2 = dict([(“name”, “李四”), (“age”, 19)]) print(person) # {‘name’: ‘张三’, ‘age’: 18}

  • 📊 字典作频率表:统计元素出现次数(比如统计单词出现次数): words = [“apple”, “banana”, “apple”, “orange”, “apple”] freq = {} for word in words: if word in freq: freq[word] += 1 else: freq[word] = 1 print(freq) # {‘apple’:3, ‘banana’:1, ‘orange’:1}
  • 🗂️ 嵌套字典:值可以是字典,存更复杂的结构(比如用户信息+爱好): user = { “name”: “张三”, “info”: { “age”: 18, “city”: “北京” }, “hobbies”: [“篮球”, “游戏”] }

取嵌套字典的值

print(user[“info”][“city”]) # 北京

  • 字典推导:一行生成字典(比如把列表转成{元素:长度}的字典): words = [“apple”, “banana”, “orange”] word_len = {word: len(word) for word in words} print(word_len) # {‘apple’:5, ‘banana’:6, ‘orange’:6}

字典是Python处理“结构化数据”的核心工具——比列表更灵活,比表格更轻便!

五、字典的进阶:存储与复杂结构

字典进阶:存储与复杂结构 🚀

关键字

:二进制存储字典、元组作键、有序字典 内容详解: 字典还有这些实用技巧:

  • 💾 在二进制文件中存储字典:用pickle模块把字典存成二进制文件(能存任意Python对象): import pickle user = {“name”: “张三”, “age”: 18}

存字典到二进制文件

with open(“user.pkl”, “wb”) as f: pickle.dump(user, f)

从二进制文件读字典

with open(“user.pkl”, “rb”) as f: loaded_user = pickle.load(f) print(loaded_user) # {‘name’: ‘张三’, ‘age’: 18}

  • 🔑 用元组作字典的键:元组是“不可变序列”,可以当字典的键(列表不行)——比如存坐标对应的数值:

键是( x,y )坐标,值是对应的温度

temp_map = { (0,0): 25, (0,1): 26, (1,0): 24 } print(temp_map[(0,0)]) # 25

  • 🔢 有序字典:Python 3.7+的普通字典会保留插入顺序,也可以用collections.OrderedDict(更灵活的有序控制)。