列表和元组

Python中序列是最基本的数据结构,序列中每个元素都有编号,其中第一个元素索引为0,第二个为1,以此类推,同时也可以从序列的末尾,用负数表示元素的位置

Python中内置了很多序列,本文主要讲述两种序列,列表和元组

列表和元组的最主要区别在于,列表是可以修改的,而元组不可以

列表的操作:

  1. 创建列表

列表的创建很简单,只要用逗号将不同的元素隔开,然后使用方括号括起来即可

list1 = [1,2,3]

list2 = [‘a’,’b’,’c’]

list3 = [1,2,’a,’b’’]

  1. 访问列表中的元素

列表中所有的元素都有编号----从0开始递增,可以使用列表的编号来访问列表中的元素:

>>> list1 = ['a','b','c']

>>> list1[1]

'b'

也可以使用负数,即从右往左获取列表中的元素

    >>> list1 = ['a','b','c']

>>> list1[-1]

'c'

实例:输入1-7 显示对应星期几

#!/usr/bin/env python
#!-*-coding:utf-8-*-
#!@Author:Chauncy
weeks = [
    'Monday',
    'Tuesday',
    'Wednesday',
    'Thursday',
    'Friday',
    'Saturday',
    'Sunday'
]
week = input("Please input week(1-7):")
week_number = int(week)
week_name = weeks[week_number-1]
print(week_name)

  1. 切片

除了索引来访问单个元素之外,还可以使用切片来访问特定范围内的元素,即是用两个索引,中间用冒号隔开:

list1 = ['a','b','c']

>>> list1[1:2]

['b']

>>> list1[1:3]

['b', 'c']

两个索引分别界定了列表的边界,但要注意,索引的第一个元素是包含在切片内的,但第二个不包括,即左闭右开

切片有以下几种简写

list1 = [‘a’,’b’,’c’]

list1[:]           à表示整个索引

list1[:1]          à等价于list1[0:1]

list1[0:]          à等价于list1[:],即整个索引

实例 从URL中提取域名

#!/usr/bin/env python
#!-*-coding:utf-8-*-
#!@Author:Chauncy
url = input("Please input the URL:")
domain = url[11:-4]
print(domain)

切片的步长

>>> numbers=[1,2,3,4,5,6,7,8,9]

>>> numbers[1:10:2]

[2, 4, 6, 8]

即指定中间可以跳过一些元素,步长可以为负数,即从右往左提取,但不可以为0

  1. 列表的数学运算

可以使用加法来拼接两个列表

>>> [1,2,3] + [4,5,6]

[1, 2, 3, 4, 5, 6]

将序列于数值x相乘时,将重复这个序列x次来创建一个新的序列

>>> [1,2,3] * 4

[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]

  1. 成员检查

检查某个元素是否包含在序列中,可以使用in运算符,此时将返回布尔值:True False

>>> list1 = ['a','b','c']

>>> 'a' in list1

True

>>> 'd' in list1

False

  1. 列表的基本操作
    1. 修改列表:给元素赋值

>>> x = [1,1,1]

>>> x[2] = 2

>>> x

[1, 1, 2]

  1. 删除元素:

>>> x

[1, 1, 2]

>>> del x[2]

>>> x

[1, 1]

  1. 切片赋值:

>>> name = ['P','e','r','l']

>>> name[2:] = list('ar')

>>> name

['P', 'e', 'a', 'r']

通过切片的赋值,可以将切片替换为长度与其不同的序列,使用切片赋值还可以在不删除原有元素的情况下插入新的元素,也可以执行步长不为1的切片赋值

  1. 列表的方法
    1. append

将一个对象附加到列表的末尾,不返回修改之后的列表,而是直接修改旧的列表

>>> listq = [1,2,3]

>>> listq.append(4)

>>> listq

[1, 2, 3, 4]

  1. clear

清空列表,类似于切片listq[:]=[]

>>> listq

[1, 2, 3, 4]

>>> listq.clear()

>>> listq

[]

  1. copy

赋值列表,常规复制只是将另一个名称关联到列表

>>> a = [1,2,3,4]

>>> b=a

>>> b[1] = 4

>>> a[1]

4

如果要使得a和b指向不同的列表,就必须将b关联到a的副本

>>> a = [1,2,3,4]

>>> b = a.copy()

>>> b[1] = 4

>>> a[1]

2

  1. count

统计指定元素在列表中出现了多少次

>>> a = [1,1,1,2,3,4]

>>> a.count(1)

3

  1. extend

能够将多个值附加到列表的末尾,即可以用一个列表来扩展另一个列表

>>> a = [1,2,3]

>>> b = [4,5,6]

>>> a.extend(b)

>>> a

[1, 2, 3, 4, 5, 6]

  1. index

在列表中查找指定值第一次出现的索引,值不存在时触发ValueError异常

>>> a = [1,2,3,9,8,5,6,8,9]

>>> a.index(8)

4

  1. insert

插入一个对象到列表中,前面为插入位置,后面为插入值

>>> a = [1,2,3,4]

>>> a.insert(2,5)

>>> a

[1, 2, 5, 3, 4]

  1. pop

从列表中删除一个元素(末尾的最后一个元素),并返回这一元素(pop是唯一既能修改列表又返回一个非None值额列表方法)

>>> a = [1,2,3]

>>> a.pop()

3

  1. remove

用于删除第一个为指定值的元素(修改列表且不返回值)

>>> a = [1,2,3,4,5]

>>> a.remove(5)

>>> a

[1, 2, 3, 4]

  1. reverse

按照相反的顺序排列列表中的元素

>>> a

[1, 2, 3, 4]

>>> a = [1,2,3,4,5]

>>> a.reverse()

>>> a

[5, 4, 3, 2, 1]

  1. sort

用于对列表的排序,意味着对原来列表的进行修改,而不是返回排序后的列表的副本,如果为了获取排序后列表的副本可以用sorted方法

>>> a = [2,5,8,3,4]

>>> a.sort()

>>> a

[2, 3, 4, 5, 8]

sorted

>>> a

[2, 3, 4, 5, 8]

>>> b = a.sort()

>>> b

>>> b = sorted(a)

>>> b

[2, 3, 4, 5, 8]

 元组为不可修改的序列

猜你喜欢

转载自www.cnblogs.com/wx-my/p/9062588.html