列表-list

del:将指定索引位置的元素删除

a = [1,2,3,4,5,6]
del a[2]

+:将多个列表连接起来

a = [1,2,3,4,5]
b = [5,6,7,8,9]
d = ['a', 'b', 'c']
c = a + b + d
print(c)
#[1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 'a', 'b', 'c']

*:将n个列表接在一起

a = [1,2,3,4,5]
b = a *3
print(b)
#[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

in:判断某元素是否在列表里边

a = [1,2,3,4,5,6]
b = 8
c = b in a
#c 的值是一个布尔值
print(c)
#False

list:将其他格式的数据转换成list

s = "I love wangxiaojing"
print(list(s))
#['I', ' ', 'l', 'o', 'v', 'e', ' ', 'w', 'a', 'n', 'g', 'x', 'i', 'a', 'o', 'j', 'i', 'n', 'g']

append:在列表末尾插入一个值

a = [ i for i in range(1,5)]
a.append(100)

insert:在列表指定位置插入一个值

# insert(index, data) 插入位置是index前面
a.insert(3, 666)

remove:在列表中删除指定的值的元素

# 如果被删除的值在list中不存在,则程序报错,所以可以在使用remove的时候添加一个try防止程序奔溃
a.remove(666)

clear:清空该列表

#不会改变列表的地址
a.clear()
# 如果不需要列表地址保持不变,则清空列表可以使用以下方式
# a = list()
# a = []

reverse:翻转列表里的所有内容

a.reverse()
#[1, 2, 3, 4, 5]
#[5, 4, 3, 2, 1]

extend:把一个列表直接拼接到另外一个上

a = [ 1,2,3,4,5]
b = [6,7,8,9,10]
a.extend(b)
print(a)
#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

count:查找列表中指定值或元素的个数

a_cnt = a.count(8)
print(a_cnt)

copy: 拷贝(浅拷贝)

# 深拷贝跟浅拷贝的区别
# 出现下列问题的原因是,copy函数是个浅拷贝函数,即只拷贝一层内容
# 深拷贝需要使用特定工具
a = [1,2,3, [10, 20, 30]]
b = a.copy()#使用copy会使a和b的地址不同,但是内部其他结构的地址会相同
print(id(a))
print(id(b))
print(id(a[3]))
print(id(b[3]))
a[3][2] = 666
print(a)
print(b)
#140249408365768
#140249409236040
#140249409236232
#140249409236232
#[1, 2, 3, [10, 20, 666]]
#[1, 2, 3, [10, 20, 666]]

列表内涵:通过简单方法创作列表

a = ['a', 'b', 'c']
# 下面代码的含义是,对于所有a中的元素,逐个放入新列表b中
b = [i for i in a]
print(b)
#['a', 'b', 'c']
a = [1,2,3,4,5]
b = [i*10 for i in a]
print(b)
#[10, 20, 30, 40, 50]
#生成从1到34的一个列表
a = [x for x in range(1,35)]
# 把a中所有偶数生成一个新的列表 b
b = [m for m in a if m % 2 == 0]
print(b)
#[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34]
a = [i for i in range(1,4)] 
b = [i for i in range(100,400) if i % 100 == 0]
# 列表生成是可以嵌套,此时等于两个for循环嵌套
c = [m+n for m in a for n in b]
print(c)
# 上面代码跟下面代码等价
for m in a:
    for n in b:
        print(m+n, end="  ")
# 嵌套的列表生城市也可以用条件表达式
c = [  m+n for m in a for n in b if m+n < 250]

列表的分片操作:

l = [3,2,1,4,6,3,2]
# 注意截取的范围,左闭右开
print(l[1:4])
# 下标值可以为空
print(l[:])
print(l[:4])
print(l[2:])
#[2, 1, 4]
#[3, 2, 1, 4, 6, 3, 2]
#[3, 2, 1, 4]
#[1, 4, 6, 3, 2]
l = [3,2,1,4,6,3,2]
#下标可以为负数
print(l[-2:-4])
print(l[-4:-2])
#如果分片左边值比右边大,则步长参数需要使用负数
print(l[-2:-4:-1])
#[]
#[4, 6]
#[3, 6]
l = [3,2,1,4,6,3,2]
# 分片可以控制增长幅度,默认增长幅度为1
print(l[1:6:1])
# 打印从下标1开始的数字,每次隔一个
print(l[1:6:2])
# 下标可以超出范围,超出后不在考虑多余下标内容
print(l[2:10])
#[2, 1, 4, 6, 3]
#[2, 4, 3]
#[1, 4, 6, 3, 2]

 

posted @ 2018-10-07 17:18  皮皮嘉  阅读(135)  评论(0编辑  收藏  举报