目录

列表的简单使用:

列表的    增  删  改  查:

增加元素:

删除元素:

修改元素:

查询元素:

元素排序:

关于解决remove()的漏删问题:

交换两个变量的值:

常规方法:

Python中的特有方法:


Python中的列表好比一个容器,可装任何类型数据。

如何定义一个列表:

1.空列表: [ ]

2.有内容的列表: [' ',' ',' '], [1,2,3,4],[3.5,9.9,5.2]  #可放任意数据类型,还可在列表里嵌套列表

3.列表间可相加,即列表的连接

列表的简单使用:

list1 = []
list2 = ['牛奶', '12', '辣条', '方便面']  # 与字符串中的机制十分相似
print(list2)
print(list2[2])

输出:

['牛奶', '12', '辣条', '方便面']
辣条

列表的切片类似于字符串的切片:  (使用时要注意输出包前不包后)

# 切片
list2 = ['牛奶', '12', '辣条', '方便面']
print(list2[2:4])      #start ,end 包前不包后
print(list2[::-3])
print(list2[-1:1:-2])  # start 和 end 的方向不能 和 step的方向冲突,否则显示为空

输出:
['辣条', '方便面']
['方便面', '牛奶']
['方便面']

列表的    增  删  改  查:

增加元素:

append(元素)   # 类似于入栈操作;还可以把列表添加到列表里,实现嵌套

extend(列表名)     # 添加一个列表(接连的添加元素,但不能加入整个列表);实现列表的合并

insert(位置,元素)    # 在指定位置添加元素,占用位置后,其他元素向后移动

删除元素:

remove(元素)    # 根据输入元素名,从左往右删除对应的元素;若无此元素则报错(可先使用 in                               判断是否存在要删除的元素);存在多个同名元素时,仅删除第一个

clear()               #清空列表

pop(位置)         # 注意:下标写的时候不要超范围,否则会报错;不写内容时从后默认往前删

del                    #与pop机制相似

修改元素:

index(元素)    #从左到右,根据元素返回其第一个下标(若无此元素则报错)

然后可通过:     列表名 [index] = 新值

查询元素:

1.元素  in  列表    返回bool类型  ;  元素   not  in 列表

2.列表.index(元素)    返回索引号

3.列表.count(元素)     返回元素在列表的数目,为整数

元素排序:

sort(reverse)     #当没有参数时,默认升序;当参数 reverse = True 时,为降序

reverse()         #单纯的把列表倒过来输出

也可 "手动" 冒泡排序

#冒泡排序
numbers = []
#随机生成8个1~100的整数,并添加到列表中
for i in range(8):ran = random.randint(1,100) numbers.append(ran)
print(numbers)
#对列表的元素进行排序
for j in range(0,len(numbers) - 1):for i in range(0,len(numbers)-j-1):  #一轮后,把最大 的数送到最后的位置if numbers[i] > numbers[i+1]:a = numbers[i]numbers[i] = numbers[i+1]numbers[i+1] = a
print(numbers)

关于解决remove()的漏删问题:

在列表中出现连续的字符串时,使用这种方法删除会导致漏删.

# 连续出现同一字符串会出现漏删的情况
list2 = ['赛恩', '泰达米尔', '维嘉', '维嘉', '莫德凯撒']
for i in list2:if i == '维嘉':list2.remove(i)  # 由于删除后,后面元素自动补上,再移动索引会出现指向错误
print(list2)

机制:由于索引2号位的  '维嘉'  被删后,在下一轮循环中,第二个  '维嘉'  自动补上到索引2号位,但此时循环已遍历到3号位,没有检测到补上的2号位   '维嘉'   ,故出现漏删。

使用while循环解决漏删问题:

# 使用while循环解决漏删问题
list2 = ['赛恩', '泰达米尔', '维嘉', '维嘉', '莫德凯撒']
n = 0
while n < len(list2):if list2[n] == '维嘉':list2.remove('维嘉')  # 移除后索引不动,后面字符串自动补上else:n += 1
print(list2)

机制:移除后索引不动,后面字符串自动补上,下次循环检测同一索引位

for循环的改进,解决漏删问题:

# for循环的改进,解决漏删问题
list2 = ['赛恩', '泰达米尔', '维嘉', '维嘉', '莫德凯撒', '维嘉', '维嘉']
for i in list2[::-1]:  # 倒着删。由于删除一个元素,其余元素向左补充if i == '维嘉':list2.remove('维嘉')
print(list2)

机制:for循环遍历时,列表步长为-1,从右向左遍历,检测到 '维嘉'  后,再从左往右删除一个'维嘉',字符串向左补上,下一循环进行时,索引位向左,还可以检测到  '维嘉' ,再次进行删除

list2 = ['赛恩', '泰达米尔', '维嘉', '维嘉', '莫德凯撒', '维嘉', '维嘉']
for i in range(list2.count('维嘉')):  #删除确定数量的字符串list2.remove('维嘉')
print(list2)

机制:计数待删除字符串数目,再for循环控制删除次数进行删除

关于del的特殊机制:

在使用上,del和pop()类似:

list1 = ['1', '2', '3', '4', '5', '6']
del list1[3]
print(list1)list1 = ['1', '2', '3', '4', '5', '6']
list1.pop(3)
print(list1)

均可删除索引3号位元素

用clear时:

list2 = ['赛恩', '泰达米尔', '维嘉', '维嘉', '莫德凯撒']
list1 = list2  #当列表1 = 列表2 ,表示它们的地址一样,其中一个改变,另一个也会改变list2.clear()
print(list1)  # 对list2清空,相当于把地址中的值清除。而list1和list2地址一样,故都没有值

当列表1 = 列表2 ,表示它们的地址一样,其中一个改变,另一个也会改变

对list2清空,相当于把地址中的值清除。而list1和list2地址一样,故list1也没有值

del相当于在指针层面进行操作:

a = 'hello'
b = a
c = a
print(id(b),id(c),id(a)) #其地址一样
del a #删去a的指针,不存在a,也就更加没有所对应的值
print(b, c)

注:b,c 的地址均等于 a 的地址,del a 之后,相当于断掉了a对应地址的指针,不存在a,此时输出a会报错,而输出b,c没有问题。

总结:del 用于单个元素的清除(相当于断掉一个元素对应地址指针,其余指向该地址的元素指针                不受影响)

          clear 清除时,与清除元素地址一致的元素也会遭到清除

交换两个变量的值:

常规方法:

# 交换 a , b 的值a = 2
b = 4
# 取一“容器” c
c = a
b = c
a = b
print(a,b)

Python中的特有方法:

#交换两个变量的值
a = 2
b = 3
a,b = b,a
print(a,b)c = 5
a,b,c = b,a,b  #b的值给a; a的值给b; b的值给c
print(a,b,c)

Python之列表(学习笔记)相关推荐

  1. Python基础语法学习笔记

    Python基础语法学习笔记 想淘宝省钱看我简介,博客www.liangxin.name (一) 一.Print()函数 1.数字可以直接输出,无需加引号 只能理解数字,却读不懂文字.因为数字和数学运 ...

  2. 关于Python的一些学习笔记(小白式笔记,持续更新)

    关于Python的一些学习笔记 瞎bb: 作为一个计算机专业的学生,Python应该是一门很有必要掌握的语言,但是由于鄙人太懒,一直对Python没有太多了解,但是随着知识的积累以及学业难度的增加,我 ...

  3. Python 基础知识学习笔记——NumPy

    Python基础知识学习笔记--NumPy 与 matlab 优秀的矩阵运算类似,python 提供了 numpy 库,这对熟悉 matlab 的用户来说非常友好.向量.矩阵和多维数组是数值计算中必不 ...

  4. python基础知识学习笔记(2)

    python基础知识学习笔记(2) 整理一下python基础知识,以防忘记 文章目录 python基础知识学习笔记(2) python简洁的一行代码 python简洁的一行代码 1.交换两个变量 # ...

  5. python基础知识学习笔记(1)

    python 基础知识学习笔记(1) 总结一下Python基础知识,以防忘记. 文章目录 python 基础知识学习笔记(1) 一.起步 1.python安装与编译环境 二.变量和简单数据类型 三.列 ...

  6. python标准库学习笔记

    原创:python标准库学习笔记 数据结构 bisect 模块里实现了一个向列表插入元素时也会顺便排序的算法. struct - 二进制数据结构:用途:在 Python 基本数据类型和二进制数据之间进 ...

  7. Python最优化算法学习笔记(Gurobi)

    微信公众号:数学建模与人工智能 github地址:https://github.com/QInzhengk/Math-Model-and-Machine-Learning Python最优化算法学习笔 ...

  8. Python实现Word2vec学习笔记

    Python实现Word2vec学习笔记 参考: 中文word2vec的python实现 python初步实现word2vec 中英文维基百科语料上的Word2Vec实验 GitHub代码地址 1 文 ...

  9. python白帽子学习笔记(整合)

    python白帽子学习笔记(整合) 学习笔记目录 python白帽子学习笔记(整合) 前言 一.基础篇 1.正则表达式 2.列表 3.元组带上了枷锁的列表 4.奇葩的内置方法 5.格式化字符 6.序列 ...

最新文章

  1. 【转载】register、volatile、restrict 三关键字的用法
  2. SharePoint Portal Server与SharePoint Services之间的关系
  3. ThreadPoolExecutor的execute源码分析
  4. C语言用递归函数求1累加到100求和
  5. ns-allinone错误锦囊
  6. Effective C++ 条款12
  7. DevOps发布策略简介
  8. 全球数据库--基金/管理产品--分类/行业平均
  9. 在java中蓝色_Java基础
  10. 关于ASP.NET与CLR相互关系的一些总结
  11. Debian,从安装到喜欢
  12. 四合一小说漫画听书视频网站源码 带采集
  13. 斐波那契数列 Java 实现。
  14. 实现一个简单的类似spring的pointcut正则表达式
  15. otg usb 定位_USB接口中的秘密——强大的OTG功能
  16. Windows系统跨硬盘合并分区
  17. 空中夺命“杀手锏”!以色列研发致命性无人机,让人毛骨悚然
  18. 【两周快速入门pr】三、定格动画制作-基础操作成就你的脑洞
  19. 五、Lua 变量的学习
  20. Mybatis如何实现分页

热门文章

  1. LR字符串截取lr_save_var
  2. 解决嵌入百度导航4.1.x遇到的坑
  3. 云学智慧校园-高校信息化一体化平台 V2.0 SE-WBS排期表(初拟)
  4. 使用 Qt for Android 获取并利用手机传感器数据(下篇)使用C++实现功能
  5. 陕西活性炭需求分析_活性炭市场需求分析及发展趋势预测
  6. 网络创业者莱恩-福克斯:最后一分钟的奇迹
  7. 简单了解计算机基础知识
  8. Errors during downloading metadata for repository ‘AppStream‘: - Status code: 404 for http://mirro
  9. 外贸公司怎么群发邮件?群发邮件邮箱怎么发更高效?
  10. elementui+vue+springboot企业员工工资考勤请假系统