【python】高级特性

简介

本文记录python的高级特性,包括切片、迭代、列表生成式、生成器、迭代器等。

参考《python3 教程》。

1、切片

一般而言,切片可以很方便的截取字符串或者数组中的指定元素。

  • 取前N个元素
>>> arr = [0, 1, 2, 3, 4, 5]
>>> arr[0:2]
[0, 1]

从索引0开始取,直到索引2为止,但不包括索引2。即索引0,1,正好是2个元素。
  • 从任意索引开始,取到指定索引的元素
>>> arr[3:5]
[3, 4]
  • 倒序切片,因为-1代表数组最后一个元素的索引,因此也可以用如下两种方式切片
>>> arr[-1:]
[5]
>>> arr[-2:]
[4, 5]
>>> arr[-3:-1]
[3, 4]
  • 按步长获取,每N个元素获取一次
>>> arr = list(range(100))
>>> arr[0:10:2]
[0, 2, 4, 6, 8]
  • 所有数,每10个取一次
>>> arr[::10]
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
  • tuple类型同样适用
>>> t[:3]
(1, 2, 3)
>>> t = (1,2,3,4,5)
>>> t[:2]
(1, 2)
  • 字符串也是一种数组,因此同样可以使用切片进行操作
>>> str = 'abcdefg'
>>> str[0:2]
'ab'

2、迭代

通过for循环可以遍历list或tuple类型数据,这种遍历方式就叫做迭代。语法遵从for…in方式:

  • 迭代list
arr = list(range(10))
for element in arr:
    print(element)
  • 迭代tuple
arr = (1, 2, 3, 4, 5)
for element in arr:
    print(element)
  • 迭代字典
dic = {'k1': 1, 'k2': 2, 'k3': 3}
# 迭代key
for k in dic:
    print(k)
# 迭代value
for v in dic.values():
    print(v)
# 迭代k-v
for k,v in dic.items():
    print(k, '->', v)
  • 迭代字符串
str = 'abcdefg'
for s in str:
    print(s)
  • 如何判断一个变量是否可以迭代,可以通过如下方式实现
from collections.abc import Iterable
print(isinstance('abc', Iterable))
  • 循环的同时,展示存在下标信息的元素信息
arr = list(range(10))
for i,v in enumerate(arr):
    print(i, '=>', v)

你可能感兴趣的:(python技术-编程思维,python,java,服务器)