小白学 Python(9):基础数据结构(列表)(上)

人生苦短,我选Python
前文传送门
前言
在开始今天的内容之前先简单介绍一下 Python 内置的数据结构,包括:
- 列表(list)
- 元组(tuple)
- 字典(dict)
- 集合(set)
在Python语言中,以上4种数据结构和基础数据类型(整数、浮点数等)统称为“内置类型”(Built-in Types)。
列表(list)
Python list(列表),是Python中最常用的一种数据结构,它是一组用方括号括起来、逗号分隔的数据。
创建列表:
list1 = [1, 2, 3, 4, 5]
print(list1)
list2 = ['a', 'b', 'c', 'd', 'e']
print(list2)
输出结果:
[1, 2, 3, 4, 5]
['a', 'b', 'c', 'd', 'e']
列表中的数据类型可以是相同的,如上面的 int 和 str ,也可以是不同的:
list3 = [1, 2, 3, 'a', 'b']
print(list3)
结果如下:
[1, 2, 3, 'a', 'b']
这个还不算什么,还有更骚的操作,列表里面是可以嵌套列表的:
list4 = [1, 2.33, 'a', list3]
print(list4)
结果如下:
[1, 2.33, 'a', [1, 2, 3, 'a', 'b']]
这一层一层的,又让我想起了洋葱。。。
空列表
list5 = []
print(list5)
列表的一些基操
查看列表的类型
查看类型的函数是 type() ,那么如果我们看下列表的类型呢?
print(type(list4))
结果如下:
<class 'list'>
通过索引取出列表的元素
语法:列表名[索引]
list1 = [1, 2, 3, 4, 5]
print(list1[0])
这里的数字 0 是列表的索引,含义是取出第 0 位的元素。
注意: 这里的索引是从 0 开始的,例如 list1 的索引是 0 ~ 4 。
如果我们直接去取 list1 的索引为 5 的值:
list1 = [1, 2, 3, 4, 5]
print(list1[5])
这时会直接抛出异常。
Traceback (most recent call last):
File "F:/project/python-learning/base-data-list/Demo.py", line 20, in <module>
print(list1[5])
IndexError: list index out of range
这个异常的含义是:列表索引超出范围。
Python 列表除了正索引还有一个负索引,正索引是列表从头到尾的方向,负索引的是从尾到头。
列表: ['a', 'b', 'c', 'd', 'e']
| | | | |
正索引: 0 1 2 3 4
负索引: -5 -4 -3 -2 -1
使用加号连接列表
语法: 列表1 + 列表2
print(list1 + list2)
结果如下:
[1, 2, 3, 4, 5, 'a', 'b', 'c', 'd', 'e']
对列表元素进行 for 循环
语法:
for 变量 in 列表:
print(变量)
for i in list1:
print(i)
结果如下:
1
2
3
4
5
获取列表长度
语法: len(列表)
print(len(list1))
print(len(list1 + list2))
结果如下:
5
10
检查列表中是否存在某个元素
返回的是布尔值 bool 。
print('a' in list1)
print(1 in list1)
结果如下:
False
True
删除列表
语法: del 列表名
list1 = [1, 2, 3, 4, 5]
del list1
print(list1)
结果如下:
Traceback (most recent call last):
File "D:/Development/Projects/python-learning/base-data-list/Demo.py", line 40, in <module>
print(list1)
NameError: name 'list1' is not defined
很显然,将 list1 删除之后会报错 list1 未定义。
删除列表中索引为 i 的元素
语法: del list1[i]
list1 = [1, 2, 3, 4, 5]
del list1[2]
print(list1)
结果如下:
[1, 2, 4, 5]
返回列表中最大的值
语法:max(list1)
print(list1)
print(max(list1))
print(list4)
print(max(list4))
结果如下:
[1, 2, 4, 5]
5
[1, 2.33, 'a', [1, 2, 3, 'a', 'b']]
Traceback (most recent call last):
File "D:/Development/Projects/python-learning/base-data-list/Demo.py", line 51, in <module>
print(max(list4))
TypeError: '>' not supported between instances of 'str' and 'float'
list4 中取最大值报错了,报错原因是 'str' 和 'float' 无法比较大小。
返回列表中最小的值
语法:min(list1)
print(list1)
print(min(list1))
print(list4)
print(min(list4))
结果如下:
[1, 2, 4, 5]
1
[1, 2.33, 'a', [1, 2, 3, 'a', 'b']]
Traceback (most recent call last):
File "D:/Development/Projects/python-learning/base-data-list/Demo.py", line 51, in <module>
print(max(list4))
TypeError: '<' not supported between instances of 'str' and 'float'
list4 中取最小值报错了,报错原因和上面取最大是一样的, 'str' 和 'float' 无法比较大小。
示例代码
本系列的所有代码小编都会放在代码管理仓库 Github 和 Gitee 上,方便大家取用。
小白学 Python(9):基础数据结构(列表)(上)的更多相关文章
- 小白学 Python(10):基础数据结构(列表)(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(12):基础数据结构(字典)(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(14):基础数据结构(集合)(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(11):基础数据结构(元组)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(13):基础数据结构(字典)(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(15):基础数据结构(集合)(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(16):基础数据类型(函数)(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(23):Excel 基础操作(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(2):基础数据类型(上)
人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 接触一门新的语言,肯定要先了解它的基础数据类型.啥?你问我为啥要先了解基础数据类型? 为了你的生命安全,还是乖乖听我 B ...
随机推荐
- [Code] 烧脑之算法模型
把博客的算法过一遍,我的天呐多得很,爱咋咋地! 未来可考虑下博弈算法. 基本的编程陷阱:[c++] 面试题之犄角旮旯 第壹章[有必要添加Python] 基本的算法思想:[Algorithm] 面试题之 ...
- 用Promise处理异步函数
处理函数之间的异步问题,使其同步进行的其中一种方法,就是使用Promise.Promise在ES6中被提出. 使用示例如下: 假如有三个函数,要求按getone.gettwo.getthree的顺序执 ...
- LeetCode 430. Faltten a Multilevel Doubly Linked List
题目链接:LeetCode 430. Faltten a Multilevel Doubly Linked List class Node { public: int val = NULL; Node ...
- 浅谈HDFS(二)之NameNode与SecondaryNameNode
NN与2NN工作机制 思考:NameNode中的元数据是存储在哪里的? 假设存储在NameNode节点的硬盘中,因为经常需要随机访问和响应客户请求,必然效率太低,所以是存储在内存中的 但是,如果存储在 ...
- Nginx反向代理之动静分离
我们已经知道了什么是正向代理与反向代理,这次我们就讲一下Nginx的动静分离的案例,其实质运用的就是反向代理,专门用一台服务器代理服务器上的图片资源. 想使用代理必然要配置代理,配置反向代理,必须要用 ...
- WordCount程序【Spark Streaming版本】
~~ 前置 ~~ Spark Streaming 常常对接 :本地文件.HDFS.端口.flume.kafka package february.streaming import org.apache ...
- 基于计算机操作系统的Linux的进程管理
一.实验目的 1.熟悉和理解进程和进程树的概念,掌握有关进程的管理机制. 2.了解进程与程序.并行与串行执行的区别. 3.掌握使用Linux命令管理和操作进程的方法 二.实验内容 1. 用ps命令观察 ...
- 读取unicode日志文件并清除记录的垃圾文件
//读取unicode文件,并清除记录的垃圾文件 //参数1:日志文件路径 bool ReadFilePath(const wchar_t *DataFilePath) { wchar_t ChBuf ...
- 【ASP.NET基础--MVC】MVC视图基础语法学习
初步接触.net MVC的视图语法,很多东西都不太熟悉,感觉跟之前的aspx以及html都有一些区别,最近看别人的代码,一边看一边研究,现把学到的东西在这里记录一下,以便日后翻阅. 第一部分:基础知识 ...
- Scala 学习笔记之函数(3)
class student{ def sayHello(name: => String){ println(s"Hello, $name, welcome $name") } ...