15天学会Python编程[3]:序列的方法(附课堂练习题)
作者头像
  • 黄敬闲
  • 2020-05-12 16:26:43 6

Python 序列操作详解

一、取值、切片、重新赋值

1. 取值

在 Python 中,每个元素都有一个位置,称为索引。在大多数情况下,索引从0开始,而不是1。这与日常生活中的计数习惯不同。

  • 字符串取值

    python st1 = 'thisisapple' print(st1[2]) # 输出 'i' print(st1[6]) # 输出 'a'

  • 列表取值

    python li = ['tom', 'Jon', 'Merry', 'Lili'] print(li[2]) # 输出 'Merry'

  • 元组取值

    python tu = (123, 'abcd', 456, 'tuple') print(tu[2]) # 输出 456

2. 切片

Python 序列的切片功能非常强大。切片的基本语法是 [N:M],表示从索引 N 到 M 的元素(不包括 M)。切片还可以包含第三个参数 S,即步长,可以是负数。

  • 基本切片

    python s = [1, 2, 3, 4, 5, 6, 7, 8] print(s[0:6]) # 输出 [1, 2, 3, 4, 5, 6]

  • 负数步长

    python print(s[::-1]) # 输出 [8, 7, 6, 5, 4, 3, 2, 1]

    使用负数步长可以从右向左取值,例如:

    python print(s[-1:-2:-1]) # 输出 [8] print(s[-2:-1:-1]) # 输出 []

  • 字符串切片

    python st1 = 'thisisapple' print(st1[1:4]) # 输出 'his' print(st1[1:6:2]) # 输出 'hss'

  • 列表切片

    python li = ['tom', 'Jon', 'Merry', 'Lili'] print(li[1:3]) # 输出 ['Jon', 'Merry'] print(li[2:]) # 输出 ['Merry', 'Lili'] print(li[:2]) # 输出 ['tom', 'Jon'] print(li[:-1]) # 输出 ['tom', 'Jon', 'Merry']

  • 元组切片

    python tu = (123, 'abcd', 456, 'tuple') print(tu[:3]) # 输出 (123, 'abcd', 456)

3. 重新赋值

在 Python 中,有些数据类型是不可变的(如字符串和元组),而另一些是可变的(如列表)。

  • 不可变类型

    字符串和元组的值一旦设定就不能修改。如果需要修改,必须重新赋值。

    python a = 'IAmTom' print(a[3:6]) # 输出 'Tom' try: a[3:6] = 'Jon' except TypeError as e: print(e) # 输出 'str' object does not support item assignment a = 'IAmJon'

    使用列表可以实现字符串的修改:

    python a = 'IAmTom' la = list(a) la[3:6] = 'Jon' a = ''.join(la) print(a) # 输出 'IAmJon'

  • 元组

    元组同样不可变,但可以通过解包等方式处理。

    python tu = ('a', 'b', 'c') x, y, z = tu # 解包 print(x, y, z) # 输出 'a b c' x, *y = tu # 除第一个元素外,其余元素放入列表 print(x, y) # 输出 'a ['b', 'c']'

  • 列表

    列表是可变的,可以直接修改其元素。

    python li = [1, 2, 3] li[2] = 4 print(li) # 输出 [1, 2, 4]

二、数列类型的方法

1. 字符串方法

  • 查找

    python one = '我我是祖国的花朵儿' print(one.index('我')) # 输出 0 print(one.count('我')) # 输出 2 print(one.find('我')) # 输出 0

  • 修改

    python two = 'IAmTom' print(two.upper()) # 输出 'IAMTOM' print(two.lower()) # 输出 'iamtom' three = ' you are welcome ' print(three.strip()) # 输出 'you are welcome'

  • 删除

    python st = '我说最帅的吧吧吧吧' print(st.replace('吧', '啊', 2)) # 输出 '我说最帅的啊啊吧吧'

  • 增加

    ```python st1 = 'hello' st2 = 'world' print(st1 + ' ' + st2) # 输出 'hello world'

    print('%s %s %s' % ('tom', 'jon', 'merry')) # 输出 'tom jon merry'

    a = '早晨好' print('...'.join(a)) # 输出 '早...晨...好'

    print('hello {}, {}, {}'.format('tom', 'jon', 'merry')) # 输出 'hello tom, jon, merry' print('hello {1}, {2}, {0}'.format('tom', 'jon', 'merry')) # 输出 'hello jon, merry, tom' ```

  • 字符串本义

    python print('abcdef') print('abcndef') # 输出 'abc' # 'def' print('abcbdef') # 输出 'abdef' print('abcrdef') # 输出 'defbc' print(r'n') # 输出 'n'

2. 列表方法

  • 增加

    python li = [1, 2, 3] li.append('hello') li.insert(1, 'tom') li.extend((111, 222)) print(li) # 输出 [1, 'tom', 2, 3, 'hello', 111, 222]

  • 删除

    python a = [1, 2, 3, 4, 5] print(a.pop(1)) # 输出 2 print(a.pop()) # 输出 5 a.remove(4) a.clear() print(a) # 输出 []

  • 修改

    python li = [2, 4, 6, 8] li[2] = 10 print(li) # 输出 [2, 4, 10, 8]

  • 查找

    python li = [1, 4, 2, 6, -1] li.sort() print(li) # 输出 [-1, 1, 2, 4, 6] li.sort(reverse=True) print(li) # 输出 [6, 4, 2, 1, -1]

3. 元组方法

元组是不可变对象,只有两个常用方法。

  • 查找

    python tu = ('a', 'b', 'a', 'c') print(tu.index('a', 1)) # 输出 2 print(tu.count('a')) # 输出 2

三、课堂练习

  1. 创建一个变量,并赋给它一个列表(包含数值和文本),进行切片取值,并进行增删改查的操作。

    python li = [1, 2, 'three', 4, 'five'] print(li[2]) # 输出 'three' li[2] = 'THREE' print(li) # 输出 [1, 2, 'THREE', 4, 'five'] li.append('six') print(li) # 输出 [1, 2, 'THREE', 4, 'five', 'six'] li.pop(3) print(li) # 输出 [1, 2, 'THREE', 'five', 'six'] li.remove('five') print(li) # 输出 [1, 2, 'THREE', 'six']

  2. 创建三个字符串对象,值分别是 'Hello'、'My name' 和 'is tom',用学过的拼接方法去完成拼接结果为 'Hello, My name is tom'。

    python str1 = 'Hello' str2 = 'My name' str3 = 'is tom' result = str1 + ', ' + str2 + ' ' + str3 print(result) # 输出 'Hello, My name is tom'

四、上一节课堂练习答案

  1. 创建一个变量,并给它赋一个数值(任何数值都可以),然后使用 print 显示这个变量。

    python one = 123 print(one) # 输出 123

  2. 改变这个变量,可以用一个新值交换原来的值,或者将原来的值添加某个量,使用 print 显示这个新值。

    python one = 234 print(one) # 输出 234 one += 10 print(one) # 输出 244

  3. 创建另一个变量,并赋给它一个字符串('某个文本'),然后使用 print 显示这个变量。

    python st = '我是一串字符串' print(st) # 输出 '我是一串字符串'

  4. 将第三题的变量转换为列表方式和元组方式。

    python lst = st.split() print(lst) # 输出 ['我是一串字符串'] tst = tuple(st) print(tst) # 输出 ('我', '是', '一', '串', '字', '符', '串')

    本文来源:图灵汇
责任编辑: : 黄敬闲
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
练习题序列课堂学会编程方法Python
    下一篇