pyhthon基础知识【2】:列表与元组

本节内容:
1、列表
    1.1 列表概述
    1.2 列表的基本操作
    1.3列表的进阶操作
2、元组


--------------------------------------------------------------------/---------------------------------------------------------------------------------

1、列表

1.1 列表概述
  • 列表是有序的,索引系统有两套,第一套是以第一个元素为索引0,以此类推;第二套是以最后一个元素为索引-1,倒数第二个元素为索引-2,以此类推
  • 列表元素是可修改的,列表的元素可以是列表、字符串、数字等
1.2列表的基本操作(增删改查,切片)
          
1、append方法
>>> list = [1,2,3]
>>> list.append(4)
>>> list
[1, 2, 3, 4]

2、extend方法
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]
>>> b
[4, 5, 6]

1、del(可删除元素,也可删除整个列表)
>>> a=[1,2,3]
>>> del a[0]
>>> a
[2, 3]
>>> del a
>>> a
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    a
NameError: name 'a' is not defined

2、pop,删除列表最后一个元素
>>> a=[1,2,3]
>>> a.pop()
3
>>> a
[1, 2]

3、remove,删除指定元素
>>> a=[1,2,3]
>>> a.remove(2)
>>> a
[1, 3]
>>> a=[1,2,3]
>>> a[1]="改"
>>> a
[1, '改', 3]
1、获取索引
>>> a=[1,2,3]
>>> a.index(3)
2

2、获取值
>>> a[0]
1
  • 切片
1、格式 : [ 第一个元素编号:第二个元素编号+1:步长]
>>> numbers = [0,1,2,3,4,5,6,7,8,9,10]

>>> numbers[3:6]
[3, 4, 5]

>>> numbers[3:]
[3, 4, 5, 6, 7, 8, 9, 10]
>>> numbers[:3]
[0, 1, 2]
>>> numbers[:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> numbers[0:10:2]
[0, 2, 4, 6, 8]
>>> numbers[::2]
[0, 2, 4, 6, 8, 10]
>>> numbers[::-1]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

>>> numbers[2:5:-1]
[]
>>> numbers[5:2:-1]
[5, 4, 3]

1.3列表的进阶操作
  • 加与乘
1、列表可相加
>>> a = [1,2,3] + [4,5,6]
>>> a
[1, 2, 3, 4, 5, 6]

2、列表与数字相乘
>>> a = [1]*10
>>> a
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
  • in 资格判断
>>> user = ["mlh","foo","bar"]
>>> input ("Enter your name : ") in user
Enter your name : mlh
True
>>> input ("Enter your name : ") in user
Enter your name : hah
False


#帐号密码登录判断
>>> database = [['happy','what'],['try','hao'],['sddas','xzc']]
>>> username = input("Enter your username :")
Enter your username :happy
>>> password = input("Enter your password :")
Enter your password :what
>>> [username,password] in database
True
  • 计算列表长度,最大元素,最小元素
>>> number = [0,1,2,3,4,5,6,9,7]
>>> len(number)
9
>>> max(number)
9
>>> min(number)
0
>>> len([55,9,3,7,3,6,4])
7
  • 迭代(for 循环)
迭代:对序列进行迭代的意思是依次对序列的每个元素重复执行某些操作
>>> a=[1,2,3]
>>> for i in a:
    print(i)
    
1
2
3
  • list()  类型转换
>>> list('Hello')
['H', 'e', 'l', 'l', 'o']
  • 通过切片(分片)来对列表批量赋值,插入元素,删除元素等
#批量赋值
>>> name = list("perl")
>>> name[1:]= list('ython')
>>> name
['p', 'y', 't', 'h', 'o', 'n']

#插入元素
>>> name = list("perl")
>>> name[1:1] = (1,2,3,4,5)
>>> name
['p', 1, 2, 3, 4, 5, 'e', 'r', 'l']

#删除元素
>>> numbers = [0,1,2,3,4,5,6,7,8,9]
>>> numbers[1:8] = []
>>> numbers
[0, 8, 9]
  • count 方法统计某元素在列表出现的次数
>>> numbers = [1,2,1,1,1,1,2,2,35,[1,2],[9,5],[1,2]]
>>> numbers.count(1)
5
>>> numbers.count([1,2])
2​
  • insert 方法用于插入元素
>>> numbers = [0,1,2,3,4]
>>> numbers.insert(3,'hei')
>>> numbers
[0, 1, 2, 'hei', 3, 4]
  • 实现一个栈 : append 方法 + pop 方法         实现一个先进先出队列 : insert方法 + pop 方法
  • sort用于对列表进行排序(无返回值
>>> x= [4,6,3,8,7,1,6]
>>> x.sort()
>>> x
[1, 3, 4, 6, 6, 7, 8]


如果是要获得一个排序后的副本
1.错误做法1
>>> x= [4,6,3,8,7,1,6]
>>> y = x.sort()
>>> print(y)
None

2.错误做法2
>>> x= [4,6,3,8,7,1,6]
>>> y = x   —— —— ——单纯的这样赋值是不对的,因为这样的话 y 和 x 其实是同一个列表 
>>> y.sort()
>>> y
[1, 3, 4, 6, 6, 7, 8]
>>> x
[1, 3, 4, 6, 6, 7, 8]


2.正确做法
>>> x= [4,6,3,8,7,1,6]
>>> y = x[:]  —— —— —— 应该用切片(分片)把x复制给y才行,这样子 y 与 x 就不是同一个列表了
>>> y.sort()
>>> y
[1, 3, 4, 6, 6, 7, 8]
>>> x
[4, 6, 3, 8, 7, 1, 6]

2、元组
2.1 元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表
2.2 创建元组
1、常规创建
>>> a=(2,5,6)
>>> a
(2, 5, 6)
2、 tuple函数以一个序列为操作对象,将其转化为元组,若对象原为元组,则原样返回
>>> tuple([1,2,3])
(1, 2, 3)
>>> tuple("heihaha")
('h', 'e', 'i', 'h', 'a', 'h', 'a')
​2.3 元组只有两个方法,一个是count,一个是index,具体用法参考列表



阅读更多
个人分类: 基础知识
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭