Python 列表笔记

一、列表数据类型

  1、列表的构成:

a、列表使用 [] 定义
b、可以包含0至n个值(表项)
c、值(表项)之间用英文逗号分隔","

  2、取列表中的单个值(表项)

a、通过下标去取单个值(表项),默认从0开始第一个值(表项)
b、下标不能大于值(表项)的数量,否则会报错 IndexError
c、下标只能是整数
d、下标可以是负数“从后往前”取数据    

  3、取列表中的多个值,使用切片

a、[开始:结束] ,如[2:4] 取 2,3 下标的值
b、[开始:] ,如[2:] 取从 2到最后一个 下标的值
c、[:结束] ,如[:4] 取从0到4 下标的值
d、[:] ,如[:] 取从0到最后一个 下标的值

  4、取列表中的长度 len 函数

  5、多个列表连接使用 “+” 号得到一个新列表

  6、列表复制使用 “*” 号得到一个新列表

  7、删除列表中的值,del list[2],删除list中第2个值,del也可用于变量,再次访问会报 NameError错误

  8、使用 for in 循环读取 list

supplies = ['pens', 'staplers', 'flame-throwers', 'binders']
for i in range(len(supplies)):
	print('Index ' + str(i) + ' in supplies is: ' + supplies[i])

  9、使用 in 或 not in 来判断某个值是否在列表内

'howdy' in ['hello', 'hi', 'howdy', 'heyas']

  10、多重赋值,变量的数目和列表的长度必须严格相等,否则将给出 ValueError

cat = ['fat', 'black', 'loud']
size, color, disposition = cat

  11、查找值获取列表中的下标 index(),如果值不存在,则报ValueError错误

spam = ['hello', 'hi', 'howdy', 'heyas']
spam.index('hello')  #0

  12、向列表中插入值,append()和insert()函数

spam = ['cat', 'dog', 'bat']

spam.append('moose') # ['cat', 'dog', 'bat', 'moose']
spam.insert(1, 'chicken') # ['cat', 'chicken', 'dog', 'bat']

# append 插入在最后
# insert 可以插入指定位置

  13、从列表中删除值,remove()函数,当删除不存在的值,会报错ValueError

spam = ['cat', 'dog', 'bat']
spam.remove('bat')# ['cat', 'dog']

  14、列表内的值排序,sort()函数,默认是升序,不能对既有数字又有字符串进行排序,会报错TypeError,字符串使用“ASCII字符顺序”

 spam = [2, 5, 1]
 spam.sort() # [1,2,5]
 #sort 默认是升序,通用 sort(reverse=True) 降序

 

二、列表与字符串对比

  1、列表中的操作,字符串也可行, 如:“下标取值、切片、for 、len()、 in 和 not in ”

  2、列表中的值是可变长的,字符串中的值是不可变的,否则会报错TypeError

 

三、元组数据类型与列表对比

  1、元组和列表类型一样,操作一样

  2、元组使用圆括号(),列表使用中括号[]

  3、元组中值不可变(无法修改、添加、删除),列表是可变的

  4、使用 list()将元组转为列表,tuple()将列表转换为元组

tuple(['cat', 'dog', 5]) #('cat', 'dog', 5)
list(('cat', 'dog', 5)) #['cat', 'dog', 5]

  

四、引用

  1、把一个变量赋值给另一个变量,当之前的变量值改变不会影响到后面的变量值

spam = 42
cheese = spam
spam = 100
spam # 100
cheese #42

  2、列表中的结果不同,当一个变量的值改变会影响到另一个变量的值

spam = [0, 1, 2, 3, 4, 5]
cheese = spam
cheese[1] = 'Hello!'
spam # [0, 'Hello!', 2, 3, 4, 5]
cheese #[0, 'Hello!', 2, 3, 4, 5]

  3、不希望这些变动影响原来的列表或字典,使用 copy 模块中 copy()和deepcopy()方法,deepcopy是列表中包含列表

import copy
spam = ['A', 'B', 'C', 'D']
cheese = copy.copy(spam)
cheese[1] = 42
spam # ['A', 'B', 'C', 'D']
cheese #['A', 42, 'C', 'D']

  

 

posted @ 2018-04-12 00:53  lampjia  阅读(151)  评论(0编辑  收藏  举报