一、列表基础操作

1. 获取列表长度 - len()

len()函数是Python的内置函数,用于快速获取容器类型(如列表、元组、字符串)的元素个数。时间复杂度为O(1),无论列表多长都能立即得到结果。

fruits = ['a', 'b', 'c', 'd']

print(len(fruits))  # 输出:4



empty_list = []

print(len(empty_list))  # 输出:0

2. 优雅遍历列表

使用for-in循环是遍历列表的标准方式,Python会自动处理索引边界问题,避免手动管理索引带来的错误。

magic_numbers = [7, 42, 365]

for num in magic_numbers:

    print(f"神秘数字:{num}")



# 输出:

# 神秘数字:7

# 神秘数字:42

# 神秘数字:365

3. 精准切片技巧

切片操作通过[start:end:step]语法实现,支持负数索引和步长设置,是处理序列数据的利器。

numbers = [0, 1, 2, 3, 4, 5, 6]

print(numbers[1:5])    # [1, 2, 3, 4]

print(numbers[::2])    # [0, 2, 4, 6]

print(numbers[-3:])    # [4, 5, 6]

4. 安全复制列表

   切片复制[:]创建的是浅拷贝,适用于简单列表。对于嵌套列表,建议使用copy.deepcopy()进行深拷贝。

original = [[1,2], 3]

copied = original[:]

copied[0][0] = 9

print(original)  # [[9,2],3](注意嵌套列表的浅拷贝特性)

5. 多维列表处理

   嵌套列表常用于表示矩阵、棋盘等二维数据结构,访问时需使用多重索引。

matrix = [

    [1, 2, 3],

    [4, 5, 6],

    [7, 8, 9]

]

print(matrix[1][2])  # 输出:6

二、进阶操作与函数

1. 数字序列生成 - range()

range()生成惰性序列,内存效率高。常用于循环控制和快速生成数字列表。

even_numbers = list(range(0, 10, 2))

print(even_numbers)  # [0, 2, 4, 6, 8]

2. 统计计算三剑客

min(),max(),sum()是数据分析的基础工具,支持所有可迭代对象。

temperatures = [22.5, 18.3, 25.0, 19.8]

print(f"最高温:{max(temperatures)}℃")  # 25.0

print(f"平均温:{sum(temperatures)/len(temperatures):.1f}℃")  # 21.4℃

3. 集合运算妙用

通过集合操作可以快速实现数据去重、关系运算等常见需求。

集合操作:数据处理的瑞士军刀

核心方法解析:

1. intersection() - 寻找共同元素  

# 用户兴趣标签分析

user1_tags = {"音乐", "电影", "阅读", "游戏"}

user2_tags = {"阅读", "旅行", "摄影", "游戏"}

common_tags = user1_tags.intersection(user2_tags)

print(f"共同兴趣:{common_tags}")  # 输出:{'阅读', '游戏'}



# 数学表示:A ∩ B

2. difference() - 发现独特元素

# 商品库存差异分析

warehouse_A = {"手机", "平板", "耳机", "充电宝"}

warehouse_B = {"平板", "笔记本", "耳机"}

unique_to_A = warehouse_A.difference(warehouse_B)

print(f"A仓独有商品:{unique_to_A}")  # 输出:{'手机', '充电宝'}



# 数学表示:A - B

3. union() - 合并数据王国

# 合并销售渠道

online_store = {"支付宝", "微信支付", "银联"}

offline_store = {"现金", "银联", "Apple Pay"}

all_methods = online_store.union(offline_store)

print(f"全渠道支付方式:{all_methods}")  # 输出:{'支付宝', '微信支付', '银联', '现金', 'Apple Pay'}



# 数学表示:A ∪ B

4.列表转集合技巧

# 去除重复投票记录

votes = ["用户A", "用户B", "用户A", "用户C", "用户B"]

unique_voters = set(votes)

print(f"有效投票用户:{len(unique_voters)}人")  # 输出:3人

三、高效编程技巧

列表推导式:优雅的数据变形术

基础到高级用法大全

1. 简单生成 - 批量创建  

# 生成星座列表

zodiac_signs = [f"{i+1}月星座" for i in range(12)]

print(zodiac_signs[:3])  # ['1月星座', '2月星座', '3月星座']

2. 条件过滤 - 数据清洗

# 筛选有效温度数据

readings = [35.6, -999, 28.9, 22.5, -998, 18.7]

valid_data = [x for x in readings if x > 0]

print(f"有效数据:{valid_data}")  # [35.6, 28.9, 22.5, 18.7]

3. 双重循环 - 排列组合  

# 生成服装搭配方案

colors = ["白色", "黑色"]

sizes = ["S", "M", "L"]

products = [f"{color}-{size}" for color in colors for size in sizes]

print(products)  # ['白色-S', '白色-M', '白色-L', '黑色-S', '黑色-M', '黑色-L']

4. 条件表达式 - 智能转换

# 年龄分类转换

ages = [12, 25, 7, 42, 15]

categories = ["儿童票" if age < 18 else "成人票" for age in ages]

print(categories)  # ['儿童票', '成人票', '儿童票', '成人票', '儿童票']

5. 嵌套展开 - 多维处理

# 展开考试成绩表

score_table = [

    [88, 92, 75],

    [69, 81, 93],

    [77, 85, 91]

]

all_scores = [score for student in score_table for score in student]

print(f"最高分:{max(all_scores)}")  # 93

6. 多条件过滤 - 精准筛选

# 寻找完美数字(能被3整除的偶数)

numbers = range(1, 101)

perfect_nums = [x for x in numbers if x % 2 == 0 and x % 3 == 0]

print(perfect_nums[:5])  # [6, 12, 18, 24, 30]

进阶技巧提示

性能优势:列表推导式比普通循环快约30%,特别适合处理大数据

可读性原则:当推导式超过2层嵌套时,建议改用传统循环保持代码可读性

内存优化:对于海量数据考虑使用生成器表达式 (x for x in ...)

# 生成器表达式示例(即时计算,不占用内存)

big_data = (x**2 for x in range(1000000))

print(next(big_data))  # 0

print(next(big_data))  # 1

知识扩展:集合与推导式的奇妙组合

# 统计文章关键词(自动去重)

article = """Python是一种广泛使用的编程语言,以其简洁的语法和强大的功能著称。

Python支持多种编程范式,包括面向对象、函数式和过程式编程。"""



# 三步数据处理流水线

keywords = set(

    word.lower()

    for line in article.split("\n")

    for word in line.split()

    if len(word) > 3

)

print(f"文章关键词:{keywords}")

# 输出:{'python', '广泛使用', '编程语言', '简洁', '语法', '强大', '功能', '著称', '支持', '多种', '范式', '包括', '面向对象', '函数式', '过程式'}

四,元组使用技巧

元组的不可变性保证了数据安全,常用于字典键值和函数返回多个值。

# RGB颜色元组

colors = {

    'red': (255,0,0),

    'green': (0,255,0),

    'blue': (0,0,255)

}



# 坐标变换示例

def move_point(x, y, dx=0, dy=0):

return (x+dx, y+dy)



print(move_point(3, 5, 2, -1))  # (5,4)

五、代码规范与最佳实践

PEP8代码风格指南

示例:

# 好的风格

def calculate_average(numbers):

    total = sum(numbers)

    count = len(numbers)

    return total / count if count != 0 else 0



# 需要改进的写法

def calc_avg(n): # 函数名不清晰

    t=sum(n);c=len(n) # 多个语句写在一行

    return t/c if c else 0 # 运算符周围缺少空格

建议:

1. 使用4个空格缩进

2. 运算符两侧添加空格

3. 函数和类之间保留两个空行

4. 导入模块分行书写

import os

import sys

from datetime import datetime

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐