python学习笔记二:列表

列表通过索引读取数据:

#索引读取数据
a = [1,2,3]
a[-1]

运行结果:3

列表支持嵌套:

b = [[1,2,3],[4,5,6]]
print(b)

运行结果:[[1, 2, 3], [4, 5, 6]]

列表可以修改:

b = [[1,2,3],[4,5,6]]
b[1][2]=4
print(b)

运行结果:[[1, 2, 3], [4, 5, 4]]

列表的切片:

a = [1,2,3,4,5,6,7]

#正向索引,取前4个元素,步长为1
print(a[0:4:1])
运行结果:[1, 2, 3, 4]

#反向索引
print(a[-1:-4:-1])
运行结果:[7,6,5]

#若取2,4,6,则步长为2
a[1::2]
运行结果:[2,4,6]

列表的添加操作:

注意python使用append向列表中添加列表元素时,改变添加的列表元素,之前添加的元素也发生变化,原因是append添加元素时添加的是地址,而不是实际的值

#1.加号
a = [1,2,3]
b = [4,5,6]
print(a+b)
print(id(a))
运行结果:[1, 2, 3, 4, 5, 6]
87703240

#2.extend:接受参数b并将参数b的全部元素添加到原有列表中,原地修改列表而不新建列表
a.extend(b)
print(a)
print(id(a))
运行结果:[1, 2, 3, 4, 5, 6]
87703240

#3.append:添加任意对象到列表的末端
a = [1,2,3]
a.append(4)
print(a)
运行结果:[1,2,3,4]

a.append([5,6,7])
print(a)
运行结果:[1,2,3,4,[5,6,7]]

#4.insert:插入任意对象到列表中,可以控制插入位置
a = [1,2,3]
a.insert(1,'ab')
print(a)
运行结果:[1, 'ab', 2, 3]

列表的删除操作:

#1.del:通过索应删除指定位置的元素
a = [1,2,3]
del a[0]
print(a)
运行结果:[2,3]

a = [1,2,3]
b = a
del a[:] #删除对象,并没删除地址或用a.clear()清空列表
print(id(a))
b
运行结果:94939912
[]

a = [1,2,3]
b = a
del a #删除地址,并没有删除对象
b
运行结果:[1, 2, 3]
print(id(a))
运行结果:NameError: name 'a' is not defined

#2.remove:移除列表中找到的第一个值,如果没找到,会报错
a = [1,2,3,2]
a.remove(2)
print(a)
运行结果:[1,3,2]

#3.list.pop(-1):移除列表中的一个元素(默认-1,即最后一个元素)并且返回该元素的值
a = [1,2,3]
b = a.pop()
print(b)
print(a)
运行结果:3
[1,2]

列表的成员关系:

#in not in可以判断一个元素是否在列表里
a = [1,2,3]
print(1 in a)
运行结果:True

print(2 not in a)
运行结果:False

print(3 in a)
运行结果:True

列表推导式:

a = [i*i for i in range(1,6)]
print(a)
运行结果:[1, 4, 9, 16, 25]

#加入判断语句
b = [i for i in range(1,6) if i%2==1]
print(b)
运行结果:[1, 3, 5]

#生成字符串
['the %s' % i for i in range(6)]
运行结果:['the 0', 'the 1', 'the 2', 'the 3', 'the 4', 'the 5']

#生成元组
[(x,y) for x in range(2) for y in range(2)]
运行结果:[(0, 0), (0, 1), (1, 0), (1, 1)]

#生成字典
dict([(x,y) for x in range(2) for y in range(2)])
运行结果:{0: 1, 1: 1}
#其实是先生成了0:0,再生成0:1,后面的键0将前面的键0覆盖了

列表的排序:

#列表的排序和翻转:是直接修改原列表,返回值为none
a = [1,2,4,3]
b = a.sort()#从小到大
print(a)
print(b)
运行结果:[1, 2, 3, 4]
None

c = a.reverse()#原地翻转
print(a)
运行结果:[4, 3, 2, 1]

#降序
a = [1,2,3,4]
a.sort(reverse=True)
print(a)
运行结果:[4, 3, 2, 1]

#按整数
b = ['12','5','234','43']
b.sort(key = int)
print(b)
运行结果:['5', '12', '43', '234']

按元组里的第二个元素,即整数
c = [('a',4),('b',3),('c',2)]
c.sort(key = lambda x:x[1])
print(c)
运行结果:[('c', 2), ('b', 3), ('a', 4)]


#按后两个整数优先排序
import operator
d = [(1,4,5),(2,1,2),(3,2,3)]
d.sort(key = operator.itemgetter(1,2))#按后两个数字优先排序
print(d)
运行结果:[(2, 1, 2), (3, 2, 3), (1, 4, 5)]

内置list方法:

a = 'abc'
list(a)
运行结果:['a', 'b', 'c']

b = (1,2,3,4)
list(b)
运行结果:[1, 2, 3, 4]

统计某个元素在列表中出现的次数:

a = [1,2,1,3,1,4]
a.count(1)
>>3

从列表中找出某个值第一个匹配项的索引位置:

a = [1,2,1,3,1,4]
a.index(2)
>>1

复制列表:

list.copy()

遍历技巧:

在字典中遍历时,关键字和对应的值可以使用 items() 方法同时解读出来:

dict1 = {'a':1,'b':2,'c':3}
for k,v in dict1.items():
    print(k,v)

>>a 1
b 2
c 3

在序列中遍历时,索引位置和对应值可以使用 enumerate() 函数同时得到:

for i,v in enumerate(['a','b','c']):
    print(i,v)
>>0 a
1 b
2 c

#或者
l = ['a','b','c']
for i in range(len(l)):
    print(i,l[i])
>>0 a
1 b
2 c

同时遍历两个或更多的序列,可以使用 zip() 组合:

a = list('abcde')
b = [0,1,2,3,4]
for k,m in zip(a,b):
    print(k,m)

>>a 0
b 1
c 2
d 3
e 4

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python学习笔记PDF是一种学习Python编程语言的资料形式,它包含了Python的基本语法、数据类型、流程控制、函数、模块、面向对象编程、异常处理等相关内容。以下是关于Python学习笔记PDF的详细内容说明: 1. 基本语法:Python学习笔记PDF中,首先介绍了Python的基本语法,例如如何定义变量、数据类型的使用(包括整数、浮点数、字符串、列表、元组、字典等),以及如何进行算术运算、比较运算和逻辑运算。 2. 流程控制:Python学习笔记PDF中,进一步介绍了流程控制的知识,包括条件判断和循环控制。条件判断主要是通过if语句进行判断执行不同的代码块,而循环控制则通过while循环和for循环来实现重复执行一段代码。 3. 函数:Python学习笔记PDF中,对函数的概念和使用进行了详细的解释。函数是代码的封装和组织方式,通过定义函数可以提高代码的重用性和可读性。学习者将了解到如何定义函数、调用函数、函数参数的传递以及函数返回值的使用。 4. 模块:Python学习笔记PDF中,介绍了Python中的模块和包的概念。模块是一组函数、类或变量的集合,以.py文件的形式存在,可以被其他程序调用和使用。学习者将学习如何导入模块、使用模块中的函数和变量。 5. 面向对象编程:Python学习笔记PDF中,对面向对象编程进行了系统的讲解。面向对象编程是一种以对象为基本单位的编程思想,通过定义类和对象,可以更好地组织和管理代码。学习者将了解如何定义类、创建对象、封装、继承和多态的使用。 6. 异常处理:Python学习笔记PDF中,对异常处理进行了介绍。异常是程序在运行过程中出现的错误,通过捕获和处理异常,可以更好地控制程序的执行流程并提高程序的健壮性。学习者将了解到如何使用try-except语句来捕获和处理异常。 总之,Python学习笔记PDF是一份全面而详细的学习Python编程语言的资料,通过学习该资料,学习者将获得扎实的Python编程基础,并能够运用Python进行简单的程序开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城青年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值