《Effective Python 2nd》中如何高效运用列表与字典技巧?
- 内容介绍
- 文章标签
- 相关推荐
本文共计10685个文字,预计阅读时间需要43分钟。
Python提供了丰富的特有语法和内置模块,能够扩展列表和字典的功能,使我们能够用简洁的代码实现强大的功能。
引言
Python提供了一些特殊的语法和内置的模块,能够扩充列表与字典的能力,让我们可以用清晰的代码实现很多强大的功能。
#11 学会对序列做切片
Python可以从序列里切割(slice)出一部分内容。凡是实现了__getitem__与__setitem__这两个特殊方法的类都可以切割。
切割最基本的写法是somelist[start:end],从start开始取,不包括end。
a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']print('Middle two: ', a[3:5]) # Middle two: ['d', 'e']
print('All but ens: ', a[1:7]) # All but ens: ['b', 'c', 'd', 'e', 'f', 'g']Middle two: ['d', 'e']
All but ens: ['b', 'c', 'd', 'e', 'f', 'g']
如果从头开始切割列表,可以省略冒号左侧的下标0。
assert a[:5] == a[0:5]如果一直取到列表末尾,那就应该省略冒号右侧的下标。
assert a[5:] == a[5:len(a)]用负数做下标表示从列表末尾往前算。
本文共计10685个文字,预计阅读时间需要43分钟。
Python提供了丰富的特有语法和内置模块,能够扩展列表和字典的功能,使我们能够用简洁的代码实现强大的功能。
引言
Python提供了一些特殊的语法和内置的模块,能够扩充列表与字典的能力,让我们可以用清晰的代码实现很多强大的功能。
#11 学会对序列做切片
Python可以从序列里切割(slice)出一部分内容。凡是实现了__getitem__与__setitem__这两个特殊方法的类都可以切割。
切割最基本的写法是somelist[start:end],从start开始取,不包括end。
a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']print('Middle two: ', a[3:5]) # Middle two: ['d', 'e']
print('All but ens: ', a[1:7]) # All but ens: ['b', 'c', 'd', 'e', 'f', 'g']Middle two: ['d', 'e']
All but ens: ['b', 'c', 'd', 'e', 'f', 'g']
如果从头开始切割列表,可以省略冒号左侧的下标0。
assert a[:5] == a[0:5]如果一直取到列表末尾,那就应该省略冒号右侧的下标。
assert a[5:] == a[5:len(a)]用负数做下标表示从列表末尾往前算。

