Python基础学习总结(二)
2、列表简介
- Python有内置的一种数据类型列表:list。
- list是一种有序的集合。
- 列表由一系列按特定顺序排列的元素组合。用方括号 [ ] 来表示。
- list里面的元素的数据类型可以不同,比如:
>>> L = ['Apple', 123, True] # 分别是字符串,整数,布尔值
2.1索引列表
从0开始而不是1。当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界。特殊情况,当索引开始位置超过列表范围时,返回空表,不报错。
>>> a = [1, 2, 3]
>>> a[4:]
[]
>>> a[5:8] # 索引从开始位置就超过列表范围,返回空表,不报错。
[]
如果要取最后一个元素,除了计算索引位置外,还可以用[-1]做索引,直接获取最后一个元素。
2.2修改、添加和删除列表元素
2.2.1添加元素
在列表中添加元素,使用append()方法:
>>> List = [1, 2, 3, 4]
>>> List.append(5)
>>> List
[1, 2, 3, 4, 5]
2.2.2插入元素
在列表中使用 insert() 方法,插入新元素,要指定新元素的索引和值。
>>> classmates = ['Michael', 'Bob', 'Tracy', 'Adam']
>>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
2.2.3删除元素
- 删除 del 要知道索引位置 del ABC[0]:
>>> A = ['a', 'b', 'c', 'd']
>>> del A[1] # 注意索引为1,表示第2位,因为列表从0开始索引
>>> A
['a', 'c', 'd']
- 要删除list末尾的元素,用pop()方法:
>>> A = ['a', 'b', 'c', 'd']
>>> A.pop() # 使用pop()之后,会弹出删除的值
'd'
>>> A # 可见最后一位的元素,被删除了
['a', 'b', 'c']
- 要删除指定位置的元素,用pop(i)方法,其中i是索引位置:
>>> A
['a', 'b', 'c']
>>> A.pop(1) # 通过索引,也可以删除指定位置元素
'b'
>>> A
['a', 'c']
- 使用方法pop()删除元素(弹出),可以接着使用删除值:
>>> A = [1, 2, 3, 4, 5, 6, 7]
>>> B = A.pop() # 你如果想在使用被删除的值,可以从新赋值
>>> A
[1, 2, 3, 4, 5, 6]
>>> B # 被删除元素可以继续使用
7
- 根据值删除元素 remove():
>>> C = [9, 5, 2, 7, 3]
>>> C.remove(2) # 指定删除元素 2
>>> C
[9, 5, 7, 3]
2.2.4修改元素
要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:
>>> D = [2, 2, 3, 3]
>>> D[1] = 3 # 把索引 1 的元素,变为3
>>> D
[2, 3, 3, 3]
2.3组织列表
- 方法sort() 对列表进行永久性排序,首字母排序:
>>> A = [4, 2, 1, 7]
>>> A.sort()
>>> A
[1, 2, 4, 7]
- 函数sorted() 对列表进行临时排序。不改变原始列表:
>>> A = [4, 2, 1, 7]
>>> sorted(A) # 注意使用方法也和 sort() 不同
[1, 2, 4, 7]
>>> A # 原列表不改变
[4, 2, 1, 7]
- 倒着打印列表 reverse():
>>> A = [4, 2, 1, 7]
>>> A.reverse() # 只是倒着打印
>>> A
[7, 1, 2, 4]
- 确定列表长度 len():
>>> A = [1, 2, 3, 4, 5, 6]
>>> len(A) # 和字符一样,因为字符也可以看做是列表
6
2.3.1列表中含有另一个列表
- list元素也可以是另一个list,比如:
>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4
- 要拿到 'php' 可以这样索引 s[2][1],因此 s 可以看成是一个二维数组。
3.操作列表
3.1遍历整个列表
# 使用for循环 for a in A: #不要漏了冒号
print() #注意缩进
print() #循环结束后总结
3.2创建数值列表
- 函数range(),range(1,5)只能打印4个数字不能打印5:
>>> for i in range(1, 5):
... print(i)
...
1
2
3
4
- 使用函数list()把range()转换为列表list(range(1,5)):
>>> list(range(1, 5))
[1, 2, 3, 4]
- 对数字列表执行简单的统计计算min()最小值 ; max()最大值 ; sum()总和。
3.3使用列表的一部分
3.3.1切片
对经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,简化操作。
- [ : ]切片的起始从0开始,[:4]表示0到3,[-3:]表示倒数3个。
- [2 : ]表示从第3个到末尾。
- 只写[ : ] 表示把原样复制,形成一个新的列表,非常的方便。
- [ : :步长];[ : : -1]把字符倒过来。
- 字符串'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串。
- 判断是否为回数:str(n) == str(n)[ : :-1]
3.4元组
- 另一种有序列表叫元组:tuple。
- tuple和list非常类似,但是tuple一旦初始化就不能修改,Python把不能修改的值称为不可变的,不可变的列表被称为元组。因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
3.4.1定义元组
- 元组是在( )中添加元素,用逗号隔开,访问和列表一样。但不能修改值。但可以赋值。数字可以直接(1, 2, 3, 4),字符需要加引号(‘a’, ’b’, ’c’)
- Python在显示只有1个元素的tuple时,也会加一个逗号,以免你误解成数学计算意义上的括号。t = (1,)
- tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!所有要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。
3.5设置代码格式
- PEP8
- 缩进格式,4个空格
- 行长不超过79个字符
- 使用空行组织结构
Python基础学习总结(二)的更多相关文章
- Python基础学习(二)
前一段时间学习了Python数据类型,语句和函数,目前书写python的新特性,继续练手!!!! 一.切片 之前我们从python的list 或者 tuple中取得元素都是这样写,显然不够灵活 lis ...
- python基础学习(二)--函数
return返回值: python函数都有返回值,函数体内无return,默认返回值None, 函数参数: 1.普通参数 严格按照顺序,将实际参数赋值给形式参数,一一对应. 例: def send(x ...
- python基础学习笔记二之列表
1.列表 ①列表的创建: ②列表的查询(索引): ③列表的切片操作: 此处要注意到:返回索引0到3的元素,顾头不顾尾. ④列表的增加: s.append() #直接在结尾追加 s.insert() ...
- Python基础学习篇章二
一. Python如何运行程序 1. 在交互模式下编写代码 最简单的运行Python程序的方法是在Python交互命令行中输入程序.当然有很多方法可以开始这样的命令行,比如IDE,系统终端.如果你已经 ...
- python基础学习(二)注释和算术运算符
注释 1. 注释的作用 注释就是对某些代码进行标注说明,以增强代码的可读性.我们在写程序的时候,编写的某一部分代码的意图不太明显,这时候就需要对这一部分代码加以说明,来明确这一部分到的意图.一般的编程 ...
- Python基础学习二
Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...
- Day1 Python基础学习
一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...
- Day1 Python基础学习——概述、基本数据类型、流程控制
一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...
- Python 基础学习 总结篇
Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...
随机推荐
- spring-第二章-AOP
一,回顾 1.控制反转(IOC) 以前创建对象,由我们自己决定,现在我们把管理对象的声明周期权力交给spring; 2.依赖注入(DI) A对象需要B对象的支持,spring就把B注入给A,那么A就拥 ...
- 实体bean里面不要轻易加transient,反序列回来之后会变成null
实体bean里面不要轻易加transient,反序列回来之后会变成null
- 跑monkey前开启/关闭系统通知栏
@echo off cls title 别忘了跑monkey啊 :menu cls color 0A echo. .禁用systemui并重启 echo. .启用systemui并重启 echo. e ...
- Linux 下四条高大命令(计划360检测脚本)
查看进程,按内存从大到小 ps -e -o "%C : %p : %z : %a"|sort -k5 -nr 查看进程,按CPU利用率从大到小排序 ps -e -o "% ...
- 【算法】禁忌搜索算法(Tabu Search,TS)超详细通俗解析附C++代码实例
01 什么是禁忌搜索算法? 1.1 先从爬山算法说起 爬山算法从当前的节点开始,和周围的邻居节点的值进行比较. 如果当前节点是最大的,那么返回当前节点,作为最大值 (既山峰最高点):反之就用最高的邻居 ...
- win10打开移动热点让手机连接上网教程
概述: 为什么要这么做呢? 我笔记本插网线可以上网,但是没有买猫盒,所以只能pc开热点,让手机上网. 过程如下: 1开启移动热点,设置密码 1.1开启移动热点,截图如下: 1.2设置热点名称,密码 2 ...
- JavaScript实现自定义alert弹框
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAh0AAAFkCAYAAACEpYlzAAAfj0lEQVR4nO3dC5BddZ0n8F93pxOQCO
- More Effective C++ 35个改善方法
美·Scott Meyers 侯捷 More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Soluti ...
- UVALive - 6436、HYSBZ - 2435 (dfs)
这两道题都是用简单dfs解的,主要是熟悉回溯过程就能做,据说用bfs也能做 道路修建(HYSBZ - 2435) 在 W 星球上有n 个国家.为了各自国家的经济发展,他们决定在各个国家 之间建设双向道 ...
- java数据结构和算法学习笔记
第一章 什么是数据结构和算法 数据结构的概述 数据结构是指 数据再计算机内存空间或磁盘空间中的组织形式 1.数据结构的特性 数据结构 优点 缺点 数组 插入快,如果知道下标可以快速存取 查找和删除慢 ...