《Effective Python 2nd》中如何高效运用列表与字典技巧?

2026-05-21 18:172阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计10685个文字,预计阅读时间需要43分钟。

《Effective Python 2nd》中如何高效运用列表与字典技巧?

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分钟。

《Effective Python 2nd》中如何高效运用列表与字典技巧?

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)]

用负数做下标表示从列表末尾往前算。

阅读全文