1.10 Python基础知识 - 序列:列表
在Python中有很多的组合数据类型,其中包括列表,元组,字符串等数据类型,这些数据类型统称为序列类型,用他们可以处理复杂的数据。
列表,是一组有序元素组合的数据结构。列表是可变的数据类型。
列表采用方括号中逗号分隔元素的数据结构进行定义,格式如下:
[x1,[x2, ... ,xn]]
示例:
list1 = [11,22,33,44,55]
也可以使用list方法进行创建,如下:
list1 = list("hello,python")
print(list1) # 输出结果 ['h', 'e', 'l', 'l', 'o', ',', 'p', 'y', 't', 'h', 'o', 'n']
当创建一个列表后,可以对列表中的元素进行访问,修改,添加,删除(即查,改,增,删)等的操作。
示例列表: list1 = [11,22,33,44,55]
1、访问(查)
列表中的访问,是通过访问元素下标进行访问的,如下:
示例:
#查询某个元素的下标值,列表中下标位的值是从0开始的自然数,所以元素22的下标值为1
list1.index(22) #输出
#元素是否在某个列表中
22 in list1 #输出 True #访问其中的元素
list1[2] #输出 33
list1[-1] #输出
#切片访问,访问其中某一段数据,切片访问有顾头不顾尾的特性
list1[1:3] #输出 [22,33]
list1[:3] #输出,等同于list1[0:3] [11,22,33]
list1[1:] #输出 [22,33,44,55]
list1[-4:-2] #输出 [22,33]
list1[-2:] #输出 [44,55]
list1[1:4:2] #输出,2为步长,按步长切割 [22,44]
list1[:] #输出 [11,22,33,44,55]
#查询某个元素在列表中的数量
list1.count(11) #输出 1
2、修改(改)
列表中的修改比较简单,要想修改某个元素,只要对其重新复制就好
示例:
list1[22] = 55
3、添加(增)
示例1:
list1 = [11,22,33,44,55,11]
list1.append(678)
print(list1) # 输出结果,append方法是在列表后面追加元素 [11, 22, 33, 44, 55, 11, 678]
示例2:
list1 = [11,22,33,44,55,11]
list1.insert(3,678)
print(list1) # 输出结果,insert方法用于插入操作,需要指定要插入的下标位和元素 [11, 22, 33, 678, 44, 55, 11]
4、删除(删)
示例1:
list1 = [11,22,33,44,55,11]
print(list1.pop(3))
print(list1)
# 输出结果,pop方法默认是从列表后面开始删除,如果要删除指定位置的元素,需要指定下标,而且pop删除时可以返回删除的元素 44
[11, 22, 33, 55, 11]
示例2:
list1 = [11,22,33,44,55,11]
del list1[3]
print(list1) # 输出结果 [11, 22, 33, 55, 11]
示例3:
list1 = [11,22,33,44,55,11]
list1.remove(22)
print(list1) # 输出结果,remove方法需要指定要删除的元素 [11, 33, 44, 55, 11]
示例4:
list1 = [11,22,33,44,55,11]
list1.clear()
print(list1) #输出结果,删除所有的元素,相当于del list1[:] []
5、列表中的其他操作
示例1:
list1 = [11,22,33,44,55,11]
list1.reverse() print(list1) #输出结果,reverse将列表中的顺序进行反向排列 [11, 55, 44, 33, 22, 11]
示例2:
list1 = [11,22,33,44,55,11]
list1.sort() print(list1) #输出结果,对列表进行排序操作,请与reverse予以区别 [11, 11, 22, 33, 44, 55]
示例3:
list1 = [11,22,33,44,55,11]
list2 = [345,234,567] list1.extend(list2)
print(list1) #输出结果,将列表2中的元素加入到列表1中 [11, 22, 33, 44, 55, 11, 345, 234, 567]
6、浅拷贝与深拷贝
在Python的列表中有个方法叫做copy,对列表执行复制功能,但是这个复制功能通常称为浅拷贝。
浅拷贝示例:
list1 = [11,22,33,44,[99,88,77],55,11]
list2 = list1.copy()
#
print('list1列表:',list1)
print('list2列表:',list2) # 第一次修改list1中的元素
list1[1] = 222
print('第一次修改----》')
print('list1列表:',list1)
print('list2列表:',list2) #第二次修改list1中的元素
list1[4][1] = 8888
print('第二次修改----》')
print('list1列表:',list1)
print('list2列表:',list2) # 输出结果 list1列表: [11, 22, 33, 44, [99, 88, 77], 55, 11]
list2列表: [11, 22, 33, 44, [99, 88, 77], 55, 11]
第一次修改----》 # 这里我们看一下,我们把list1中的22修改成了222,发现只有list1中元素变化了,list2没有变化,这也符合预期,因为我们做的是列表copy操作
list1列表: [11, 222, 33, 44, [99, 88, 77], 55, 11]
list2列表: [11, 22, 33, 44, [99, 88, 77], 55, 11]
第二次修改----》 # 第二次修改我们修改了list1中为列表的元素中的元素,发现list1中变化了,list2中也发生了变化,产生这个效果的原因,是因为我们使用的copy就是浅拷贝操作
list1列表: [11, 222, 33, 44, [99, 8888, 77], 55, 11]
list2列表: [11, 22, 33, 44, [99, 8888, 77], 55, 11]
上面是浅拷贝的效果,那么我们要把所有的元素都进行拷贝,那该怎么办?请看示例,
深拷贝示例:
# 要执行深度拷贝,需要导入模块copy,使用其中的方法deepcopy() import copy list1 = [11,22,33,44,[99,88,77],55,11]
list2 = copy.deepcopy(list1)
print('list1列表:',list1)
print('list2列表:',list2) # 第一次修改list1中的元素
list1[1] = 222
print('第一次修改----》')
print('list1列表:',list1)
print('list2列表:',list2) # 第二次修改list1中的元素
list1[4][1] = 8888
print('第二次修改----》')
print('list1列表:',list1)
print('list2列表:',list2) # 输出结果,发现无论我们怎么修改list1,list2中的元素都不会变化,达到了完全复制的效果 list1列表: [11, 22, 33, 44, [99, 88, 77], 55, 11]
list2列表: [11, 22, 33, 44, [99, 88, 77], 55, 11]
第一次修改----》
list1列表: [11, 222, 33, 44, [99, 88, 77], 55, 11]
list2列表: [11, 22, 33, 44, [99, 88, 77], 55, 11]
第二次修改----》
list1列表: [11, 222, 33, 44, [99, 8888, 77], 55, 11]
list2列表: [11, 22, 33, 44, [99, 88, 77], 55, 11]
1.10 Python基础知识 - 序列:列表的更多相关文章
- python基础知识(列表详解)
列表(list) 列表中可以存入整数.实数.布尔值.字符串.序列.对象 可变序列 列表 [] 元素间隔用 ,号分隔 列表的创建和删除 使用赋值运算符直接创建列表 listname = [元素1 ...
- 1.12 Python基础知识 - 序列:字符串
字符串是一个有序的字符集合,即字符序列.Pythpn内置数据类型str,用于字符串处理,使用单引号或双引号括起来的字符,就是字符常量,Python解释器会自动创建str型对象实例. 字符串的定义: 1 ...
- python基础知识之列表、元祖、字典、集合、字符串。
1.可变类型之列表 列表用 [ ]来定义是可变的,可以通过索引值来去查询里面的字段可以可以追加,删除等 names='zhangyang guyun xiangpeng xuliangwei' nam ...
- Python基础知识:列表
1.pop(i)删除列表任意位置元素,并继续使用它,如果括号为空,默认删除末尾 #pop()函数 guests=['Liming','Liuhan','Hanjieming'] for guest i ...
- python基础知识二 列表、元组、range
3.6.2 列表 1.列表 -- list 有序,可变,支持索引,用于存储数据(字符串,数字,bool,列表,字典,集合,元组,). list1 = [] list1 = ['alex',12,T ...
- 1.11 Python基础知识 - 序列:元组
元组(tuple)是一组有序系列,元组和列表是否相似,但是元组是不可变的对象,不能修改.添加或删除元组中的元素,但可以访问元组中的元素 元组的定义: 元组采用圆括号中用逗号分隔的元素 元组的基本操作和 ...
- Python基础:序列(列表、元组)
一.概述 列表(list)是由一个个 Python对象 组成的序列.其中,Python对象 可以是任何类型的对象,包括 Python标准类型(数值.字符串.列表.元组和字典)以及 用户自定义类型(类) ...
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
随机推荐
- 8种提升 ASP.NET Web API 性能的方法
- Python正则表达式初识(二)
前几天给大家分享了Python正则表达式初识(一),介绍了正则表达式中的三个特殊字符“^”.“.”和“*”,感兴趣的伙伴可以戳进去看看,今天小编继续给大家分享Python正则表达式相关特殊字符知识点. ...
- 【Redis哨兵集群】
目录 开始配置主从复制 开始配置Redis Sentinel @ *** 在开始之前,我们先来看看Redis的主从复制 主从复制原理: 从服务器向主服务器发送SYNC命令. 主服务器接到SYNC命令后 ...
- strings---对象文件或二进制文件中查找可打印的字符串
strings命令在对象文件或二进制文件中查找可打印的字符串.字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束. strings命令对识别随机对象文件很有用. 语法 strings [ - ...
- 紫书 例题 9-8 UVa 1625 (滚动数组+公共字符串处理)
这题看题解看了很久,学到了挺多(自己还是太弱,唉!) (1)这道题的思路非常的巧妙.我一开始看到就觉得不好来记录开始位置以及 结束位置.但是题解换了一个思路,记录每一次开始了但还没有结束的字符有多少个 ...
- PHP保留两位小数
1.不四舍五入 $number = 23.43453;$english_format_number = number_format($number, 2, '.', '');echo $english ...
- JAVA工程命名规范
Java推荐的包声明命名约定是反向域名. 例如 - com.abysm.myproject
- CCF模拟题 字符串匹配
字符串匹配 时间限制: 1.0s 内存限制: 256.0MB 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行.你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写 ...
- CODEVS——T 4189 字典
http://codevs.cn/problem/4189/ 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 大师 Master 题解 查看运行结果 题目描述 Des ...
- [Python] Create Unique Unordered Collections in Python with Set
A set is an unordered collection with no duplicate items in Python. In this lesson, you will learn h ...