当前位置: 首页 > news >正文

Python开发—— 列表的高级操作与应用

1. 列表的高级操作

1.1 列表的合并与扩展

# 使用加号合并两个列表
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined_list = list1 + list2
print(combined_list)  # 输出: [1, 2, 3, 4, 5, 6]# 使用extend()方法扩展列表
list1.extend(list2)
print(list1)  # 输出: [1, 2, 3, 4, 5, 6]

1.2 列表的拷贝

# 使用切片拷贝列表
original_list = [1, 2, 3, 4, 5]
copied_list = original_list[:]
print(copied_list)  # 输出: [1, 2, 3, 4, 5]# 使用copy()方法拷贝列表
copied_list = original_list.copy()
print(copied_list)  # 输出: [1, 2, 3, 4, 5]

2. 列表的高阶操作

2.1 列表推导式

# 创建一个包含1到10的平方的列表
squares = [x**2 for x in range(1, 11)]
print(squares)  # 输出: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]# 过滤列表中的偶数
even_squares = [x for x in squares if x % 2 == 0]
print(even_squares)  # 输出: [4, 16, 36, 64, 100]

2.2 嵌套列表推导式

# 创建一个二维列表
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]# 转置矩阵
transpose = [[row[i] for row in matrix] for i in range(len(matrix[0]))]
print(transpose)  # 输出: [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

3. 列表的应用场景

3.1 查找列表中的最大值和最小值

numbers = [10, 20, 30, 40, 50]
max_value = max(numbers)
min_value = min(numbers)
print(f"Max: {max_value}, Min: {min_value}")  # 输出: Max: 50, Min: 10

3.2 统计列表中元素的出现次数

fruits = ['apple', 'banana', 'cherry', 'apple', 'cherry', 'cherry']
fruit_count = {fruit: fruits.count(fruit) for fruit in set(fruits)}
print(fruit_count)  # 输出: {'apple': 2, 'banana': 1, 'cherry': 3}

3.3 列表元素去重

numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = list(set(numbers))
print(unique_numbers)  # 输出: [1, 2, 3, 4, 5]

4. 列表和其他数据结构的转换

4.1 列表转换为字符串

words = ['Python', 'is', 'awesome']
sentence = ' '.join(words)
print(sentence)  # 输出: Python is awesome

4.2 字符串转换为列表

sentence = 'Python is awesome'
words = sentence.split()
print(words)  # 输出: ['Python', 'is', 'awesome'

4.3 列表和字典之间的转换

# 列表转换为字典
pairs = [('a', 1), ('b', 2), ('c', 3)]
dictionary = dict(pairs)
print(dictionary)  # 输出: {'a': 1, 'b': 2, 'c': 3}# 字典转换为列表
dictionary = {'a': 1, 'b': 2, 'c': 3}
items = list(dictionary.items())
print(items)  # 输出: [('a', 1), ('b', 2), ('c', 3)]

5. 列表的排序

5.1 使用sort()方法排序

numbers = [5, 2, 9, 1, 5, 6]
numbers.sort()
print(numbers)  # 输出: [1, 2, 5, 5, 6, 9]# 降序排序
numbers.sort(reverse=True)
print(numbers)  # 输出: [9, 6, 5, 5, 2, 1]

5.2 使用sorted()函数排序

numbers = [5, 2, 9, 1, 5, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # 输出: [1, 2, 5, 5, 6, 9]# 保持原列表不变
print(numbers)  # 输出: [5, 2, 9, 1, 5, 6]# 使用自定义键排序
people = [{'name': 'John', 'age': 25}, {'name': 'Jane', 'age': 30}, {'name': 'Doe', 'age': 22}]
sorted_people = sorted(people, key=lambda x: x['age'])
print(sorted_people)
# 输出: [{'name': 'Doe', 'age': 22}, {'name': 'John', 'age': 25}, {'name': 'Jane', 'age': 30}]

        这些例子展示了Python中列表的更高级和复杂的操作及应用场景。希望这些能帮助你更全面地理解和使用列表。如果你有特定的需求或问题,请随时告诉我!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • spring监听事件
  • Obsidian 文档编辑器
  • R 绘图 - 饼图
  • 【ROS2】中级-编写动作服务器和客户端(Python)
  • 从零手写实现 nginx-26-rewrite url 重写
  • javafx基础知识
  • 【RAG KG】GraphRAG开源:查询聚焦摘要的图RAG方法
  • 打卡第7天-----哈希表
  • Istio实战教程:Service Mesh部署与流量管理
  • AutoMQ 与蚂蚁数科达成战略合作
  • 机器学习——随机森林
  • WEB安全-文件上传漏洞
  • android 使用系统工具bootchart统计开机时长
  • 2-29 基于matlab的CEEMD
  • 【开发环境】搭建PX4+ROS2+MAVROS2+Simulink+Optitrack实物联合仿真环境
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • angular2 简述
  • Apache的80端口被占用以及访问时报错403
  • jdbc就是这么简单
  • jQuery(一)
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Travix是如何部署应用程序到Kubernetes上的
  • 从输入URL到页面加载发生了什么
  • 反思总结然后整装待发
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 判断客户端类型,Android,iOS,PC
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 一个项目push到多个远程Git仓库
  • 智能网联汽车信息安全
  • Nginx实现动静分离
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​学习一下,什么是预包装食品?​
  • # 数据结构
  • #1015 : KMP算法
  • #70结构体案例1(导师,学生,成绩)
  • (12)Linux 常见的三种进程状态
  • (30)数组元素和与数字和的绝对差
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (分布式缓存)Redis持久化
  • (六)DockerCompose安装与配置
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (转)创业家杂志:UCWEB天使第一步
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .net对接阿里云CSB服务