python中非常有用的高级特性(切片、迭代、列表生成式、生成器、迭代器)

在python中,代码不是越多越好,而是越少越好,代码越少,开发效率越高

切片:

取一个list和tuple的部分元素是非常常见的

>>>L=['a','b','c','d']

>>>L[0:3]

['a','b','c']

L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3,即0,1,2,正好3个元素。

如果第一个索引是0,还可以省略:

>>>L[:3]

['a','b','c']

也可以从索引2取1个元素出来

>>>L[2:3]

['c']

同时支持倒数切片:

倒数第一个元素的索引是-1

>>>L[-2:]

['c','d']

>>>L[-2:-1]

['c']

切片操作十分有用,比如:

我们先创建一个0-99的数列

>>>L = list(range(100))

>>>L

[0,1,2,3,4,…99]

可以通过数列轻松取出某一段数列:

比如:

取前5个数

>>>L[:5]

[0,1,2,3,4]

取后5个数

>>>L[-5:]

[95,96,97,98,99]

前5-10个数:

>>>L[5:10]

[5,6,7,8,9]

前10个数,每两个取一个:

>>>L[:10:2]

[0,2,4,6,8]

所有数,每10个取一个:

>>>L[::10]

[0,10,20,30,40,50,60,70,80,90]

只写[:]可以复制一个list

>>>L[:]

[0,1,2,……99]

tuple也可以用切片操作,只是操作结果还是tuple:

>>>(0,1,2,3,4,5)[:3]

(0,1,2)

字符串也可以用切片操作,只是操作结果还是字符串:

>>>'ABCDEFG'[:3]

'ABC'

小结:有了切片操作,很多地方循环就不再需要了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python高级特性包括但不限于以下内容: 1. 切片(Slicing):可以通过切片操作来获取列表、字符串、元组等序列类型的子序列。切片操作使用[start:end:step]的语法,可以灵活地选择需要的元素。 2. 迭代(Iteration):可以使用for循环来遍历列表、字符串、字典等可迭代对象的元素。在循环,可以使用内置函数enumerate()来同时获取元素的索引和值。 3. 列表生成式(List Comprehension):可以使用简洁的语法来创建列表。列表生成式的语法为[expression for item in iterable if condition],可以根据条件筛选和转换元素。 4. 生成器(Generator):可以使用生成器函数或生成器表达式来创建生成器生成器是一种特殊的迭代器,可以按需生成值,而不是一次性生成所有值。 5. 迭代器(Iterator):可以使用迭代器来遍历可迭代对象的元素。迭代器是一个实现了__iter__()和__next__()方法的对象,可以使用内置函数iter()来获取迭代器。 6. 其他高级特性还包括装饰器(Decorator)、上下文管理器(Context Manager)、匿名函数(Lambda Function)等。 以下是一个演示列表生成式生成器的例子: 1. 列表生成式: ```python # 创建一个包含1到10的平方的列表 squares = [x**2 for x in range(1, 11)] print(squares) # 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] ``` 2. 生成器: ```python # 创建一个生成器,按需生成斐波那契数列的值 def fibonacci(): a, b = 0, 1 while True: yield a a, b = b, a + b fib = fibonacci() print(next(fib)) # 输出:0 print(next(fib)) # 输出:1 print(next(fib)) # 输出:1 print(next(fib)) # 输出:2 ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值