零基础Python笔记2

本文介绍了Python中的列表操作,包括append、insert、extend、count、index、remove等方法,以及列表生成式的使用,如元素增减、条件过滤。此外,还详细讲解了生成器的概念,通过示例展示了如何使用生成器表达式和基于函数的生成器。这些内容对于Python初学者掌握数据处理和内存优化至关重要。
摘要由CSDN通过智能技术生成

零基础Python笔记2

主要内容包括:list的扩展、生成器

list

在list中添加新的元素

用一个list1作为操作对象:

list1 = [1, 2, 3, 4, 5]

eg1:

list1.append(6)  # 在末尾添加6
print(list1)

list1则变为:

[1, 2, 3, 4, 5, 6]

eg2:

list1.insert(2, 0)  # 在索引2位置添加0
print(list1)

list1则变为:

[1, 2, 0, 3, 4, 5]

eg3:

list2 = [6, 7, 8]
list1.extend(list2)  # 将list2合并到list1中,并保留list2中的元素
print(list1)
print(list2)

list1则变为:

[1, 2, 3, 4, 5, 6, 7, 8]

list2保留:

 [6, 7, 8]

count记数

eg:

list3 = ['a', 'b', 'a', 'd', 'a', 'f']
print(list3.count('a'))

返回值应为3

index查找

print(list3.index('a'))

返回索引值应为0

也可以用另一种方式来判断:

print('a' in list3)

返回值应为True

删除元素

还是用list1作为操作对象

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

返回值应为末尾元素5,且list1中末尾元素5被移除

若想要删除指定位置的元素,可以使用如下操作:

print(list1.pop(3))

则删除的即为索引为3的元素,即list1中的元素4
再次打印list1,输出则为:

[1, 2, 4, 5]

也可以用remove方法:

list1.remove(1)

它会删除列表中1这个元素。如果列表中有多个重复元素,则删除第一个符合的元素。
这里要注意,和pop方法不同的是,remove本身不取值。

列表生成式

它的特点:用简洁的代码实现对列表元素的操作

例如,你想让列表中的每个元素值+1,朴素的方法是写一个循环,将列表元素遍历实现+1操作,如果用列表生成式,代码实现为:

[ n+1 for n in lis1]

再例如,你想求1-10之间所有数的平方

[(n+1)**2 for n in range(10)]  # range(10)是从0-9
对字符串进行操作:

eg:

list2 = ['a', 'b', 'a', 'd', 'a', 'f']
["app_%s" %n for n in list2]

这串代码的意义是将list2中的每个字符串前面加上"app_",这里使用了%s作为占位符。

过滤功能

eg1:选取列表中的偶数

list1 = [1, 2, 3, 4, 5]
[n for n in list1 if n%2==0]

eg2: 筛选0-29之间的奇数

[n for n in range(30) if n%2==1]

eg3: 选取字符串中所有以‘sv’为结尾的项:

list4 = ['a', 'b', 'c_sv', 'd', 'e_sv']
[n for n in list4 if n.endwith('sv')]

eg4: 取两个列表的交集

list_1 = [1,3,5,7,10]
list_2 = [1,3,5,9,11]
[n for n in list_1 if n in list_2]

eg5: 在list_1中,但不在list_2中

[n for n in list_1 if n not in list_2]

生成器

第一种方法:类似于列表生成式,将[]改成()

g = (x * x for x in range(10))

运行:next(g),依次生成元素。
或者用for循环进行访问:

for n in g:
	print(n)

第二种方法:基于函数的方法
编写一个函数,将每一轮的结果用yield输出

课程链接:https://aistudio.baidu.com/aistudio/course/introduce/7073

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值