list

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)

posted on 2020-04-19 12:49  黑桃Q  阅读(132)  评论(0编辑  收藏  举报

导航