append 末尾添加
extend 迭代着增加多个
insert 固定位置添加
pop 默认删除最后一个,可根据索引删除, 有返回值
del 按照索引或者切片删除
remove 指定元素删除 如果有多个相同元素,则从左删除仅第一个
clear清空列表
l = ['索隆', 1, [1, 2, 3], 4]
print(l[-1]) # 4 索引
print(l[-1:]) # [4] 切片之后还是列表
# 创建列表 list(可迭代对象) , 注意生成的列表是迭代着分开,而不是单独一个
l1 = list('hello')
print(l1) # ['h', 'e', 'l', 'l', 'o']
# 增加
info = ['洛克斯', '山治', '波雅汉库克']
info.append('香克斯') # 插入末尾
# print(info.append('香克斯')) # 不能这么用,返回是None
print(info)
while 1:
name = input('输入姓名, 按Q退出')
if name.upper() == "Q":
break
info.append(name)
print(info)
# 指定位置增加
l2 = ['hello', 'world', '波雅汉库克']
l2.insert(2, 'wow') # 索引是必须的,且放在前面
print(l2) # ['hello', 'world', 'wow', '波雅汉库克']
# 迭代增加
l = ['张三', '李四']
l1 = [1, '2']
l.extend(l1)
print(l) # ['张三', '李四', 1, '2']
删除
# pop 按照索引删除 有返回值
l1 = ['洛克斯', '山治', 1]
shan = l1.pop(-1) # pop是有返回值得,返回值类型是各自元素的类型
# l1.pop() 不指定索引 默认删除最后一个
print(shan, type(shan)) # 1 <class 'int'>
# remove 指定元素删除 如果有多个相同元素,则从左删除仅第一个
l1 = ['洛克斯', '山治', 1, '山治']
l1.remove('山治')
print(l1) # ['洛克斯', 1, '山治']
# clear 清空列表
l = [1, 2, 3]
l.clear()
print(l) # {}
# del 按照索引或者切片删除
l = [1, 9, 8, 2, 3, 4, 5, 6]
del l[-1] # 按照索引删除 删除6
print(l) # [1, 9, 8, 2, 3, 4, 5]
del l[:4:2] # 按照切片删除 步长是2
print(l) # [9, 2, 3, 4, 5]
改
# 改 按照索引改
l1 = ['洛克斯', '山治', 'y', '山治']
l1[0] = '路飞'
print(l1) # ['路飞', '山治', 1, '山治']
# 改:按照切片
l1 = ['洛克斯', '山治', 'y', '山治']
l1[2:] = ['蒙奇D路飞', 'hello', 'hi'] # 没有指定长度,则数据个数可变
print(l1) # ['洛克斯', '山治', '蒙奇D路飞', 'hello', 'hi']
l1[0:4:2] = ['罗宾', '草帽'] # 指定步长,则重新添加的个数要和以前一样,否则会报错
print(l1)
# 注意 切片改为为字符串时候是迭代这增加的(基本没啥用)
l = ['太白', 'alex', 'WuSir', '女神']
l[1:3] = 'abcdefg'
print(l) # ['太白', 'a', 'b', 'c', 'd', 'e', 'f', 'g', '女神']
# 按照切片(步长)改值(必须一一对应) 感觉没啥用 直接['对', '应']
l = ['太白', 'alex', 'WuSir', '女神']
l[::2] = '对应'
print(l) # ['对', 'alex', '应', '女神']
查
l1 = ['洛克斯', '山治', 'y', '山治']
print(l1[0], type(l1[0])) # 洛克斯 <class 'str'>
print(l1[::-2]) # ['山治', '山治']
for i in l1:
print(i)
'''
洛克斯
山治
y
山治
'''
嵌套
l = ['hello', 1, ['王路飞', 'God', ]]
l[0] = l[0].upper()
print(l) # 第一个元素大写['HELLO', 1, ['王路飞', 'God']]
l[2].append('666')
print(l)
l[2][1] = l[2][1]+'NB' # God拼接NB
print(l) # ['HELLO', 1, ['王路飞', 'GodNB', '666']]
l = [1, 2, 3, 'hello']
for i in range(len(l)): # 打印索引
print(i)
'''
0
1
2
3
'''
for i in range(2, 101, 2): # 1-100的偶数。range的切片和补步长
print(i)
for i in range(100, 0, -1): # 100到1 反向步长 ,顾头不顾尾。
print(i)
r = range(10)
print(r) # range(0, 10)
for i in r:
print(i) # 1--9 顾头不顾尾
print(r[1]) # 1 索引
l = range(5)
print(l[1:3]) # 返回range(1, 3) 额竟然是这样
print(l[-1]) # 4
# for i in range(1, 5 ,-1): # 方向不对 什么也不打印
# print(i)
练习
# .查找列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"开头,并以"c"结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。
li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"]
li1 = []
for i in li:
i = i.strip() # 原来的i是不会改变的
if i.upper()[0] == 'A' and i[-1] == 'c':
li1.append(i)
print(li1)
# 敏感词列表 li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
# 则将用户输入的内容中的敏感词汇替换成等长度的*(苍老师就替换***),并添加到一个列表中;如果用户输入的内容没有敏感词汇,
# 则直接添加到列表中。
li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
content = input('输入内容')
content_list = []
for word in li:
if word in content:
content = content.replace(word, '*'*len(word))
content_list.append(content)
print(content_list)
# # 循环打印列表中的每个元素,遇到列表则再循环打印出它里面的元素。
li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]
for i in li :
if type(i) == list:
for j in i:
print(j)
print(i)