python基础数据类型:list(列表)__004

1、在学习列表之前,重新复习一下编码的规则

回顾编码解析:

(1)ASCII码:

由字母、数字以及特殊字符构成的;

每一个字符为一个字节,1字节byte=8位bit

(2)unicode:又称万国码,由字母、数字、特殊字符和中文构成,每个字符都是32位:4个字节,包括1一个英文字母是4个字节

(3)utf-8:unicode的升级版,由字母、数字、特殊字符和中文构成

字母、数字、特殊字符:每个字符1个字节

中文24位                     :每个字符3个字节

(4)gbk  :由ascii码演变过来,只在中国用

字母、数字、特殊字符:1个字节

中文16位                     :2个字节

window系统的默认编码方式GBK

=============================list(列表的操作)=====================================

1、列表的元素(方法同获取字符串元素)

例子:

li = ['alex',[1,2,3],'江河','女神','长江']
#获取列表li的第一个元素
li_1 = li[0]
print(li_1)
#通过切片的形式获取列表li部分元素
li_part = li[0:3]
print(li_part)
#获取列表倒序
li_part = li[-1:-3:-1]
li_part_1 = li[-1::-1]
print(li_part)
print(li_part_1)

2、列表元素的增加

例子:

#在列表末尾添加新的元素,使用方法 append('元素')
li.append('li')
print(li)
#通过索引在列表的任意位置添加元素 insert(index,object)
li.insert(0,'ll')
print(li)
在列表中添加新的值,持续不断的添加,录入q退出
#在列表中添加新的值,持续不断的添加,录入q退出
while 1:
    user_input = input('用户输入新的元素值:')
    if str(user_input.lower()) != 'q':
        li.append(user_input)
        print(li)
    else:
        print(li)
        break

(1)迭代式添加,如果是字符串,每个字符是一个元素;如果是列表可以添加多个元素

li = ['alex',[1,2,3],'江河','女神','长江']
# li.extend('北大青鸟')
print(li)  # ['alex', [1, 2, 3], '江河', '女神', '长江', '北', '大', '青', '鸟']

li.extend(['北大','青鸟']) # 添加列表可以一次添加多个元素
print(li)   #['alex', [1, 2, 3], '江河', '女神', '长江', '北大', '青鸟']

3、列表元素的删除

(1)pop() 

语法:

列表名称.pop()  # 默认删除列表最后一个元素

可以删除指定索引的元素

删除的元素可以赋值给变量

li = ['alex',[1,2,3],'江河','女神','长江']
li_1 = li.pop()
print(li)
print(li_1)
#['alex', [1, 2, 3], '江河', '女神']
#长江

(2)remove()

语法:

列表名称.remover() # 按照列表中的元素删除,删除元素无返回值

li = ['alex',[1,2,3],'江河','女神','长江']
li.remove('江河')
print(li)

(3)clear()

语法:

列表名称.clear() # 清空列表

li = ['alex',[1,2,3],'江河','女神','长江']
li.clear()
print(li)  # []

(4)del

语法:

del  列表名称   #  删除列表

del  列表名称[0:3]   # 删除列表的部分元素

li = ['alex',[1,2,3],'江河','女神','长江']
del li[0:3]  # 删除列表部分元素
del li   # 删除列表
print(li)

4、列表元素的修改

(1)语法:列表名称.[0] = '修改后的元素值'

li = ['alex',[1,2,3],'江河','女神','长江']
li[0] = 'll'
print(li)

(2)切片修改:

如果修改的值是字符串,每一个字符是一个元素,如果添加的字符少于修改元素,则修改成添加的元素,剩余的未修改索引元素自动删除,如果多余修改的索引,则增加添加的元素

li = ['alex',[1,2,3],'江河','女神','长江']
li[0:2] = 'a'
print(li)   
#['a', '江河', '女神', '长江']


li = ['alex',[1,2,3],'江河','女神','长江']
li[0:2] = 'abcde'
print(li)
#['a', 'b', 'c', 'd', 'e', '江河', '女神', '长江']

如果修改成的值是列表,则按照列表元素添加修改,其他同上

li = ['alex',[1,2,3],'江河','女神','长江']
li[0:2] = ['werw','1212','qwqwqw','sdsd']
print(li)
#['werw', '1212', 'qwqwqw', 'sdsd', '江河', '女神', '长江']

5、列表元素的查找

li = ['alex',[1,2,3],'江河','女神','长江']
#查找列表的每一个元素
for i in li:
    print(i)


li = ['alex',[1,2,3],'江河','女神','长江']
#切片查询列表的部分元素
l = li[0:3]
print(l)


li = ['alex',[1,2,3],'江河','女神','长江']
# 查询列表的长度(公共方法包括:列表、字符串、字典、元组)
print(len(li))

#5

(2)查看列表中某一个元素出现的次数,包括列表,字符串,字典,元组

li = ['alex',[1,2,3],'1','江河','1','女神','长江','1']
num = li.count('1')
print(num)

(3)列表中通过元素找索引的方法:index('元素',开始查找的索引,结束查找的索引)

li = ['alex',[1,2,3],'1','江河','1','女神','长江','1']
index_1 = li.index('1',5)
print(index_1)

(4)列表元素正向排序的方法:sort()  # 必须是数字

li = [1,3,4,2,7,9,14,10]
li.sort()  #正向排序
print(li)

li.sort(reverse=True)  #倒序
print(li)

(5)使用冒泡法排序的方法排序

def li_sort(li):
    for j in range(len(li)-1):
        for i in range(len(li)-1-j):
            if li[i]>li[i+1]:
                li[i],li[i+1] = li[i+1],li[i]
    return li
li_1 = li_sort(li)
print(li_1)

(6)列表元素反转reverse()

li = ['alex',[1,2,3],'1','江河','1','女神','长江','1']
li.reverse()  # 列表元素反转
print(li)

6、列表的嵌套

(1)获取列表元素中列表的某个值

li = ['beautiful','pay',1,2,[11,23,25,'good'],16]
#取列表中11
li_11 = li[4][0]
print(li_11)

(2)修改列表元素首字母大写方法:capitalize()

li = ['beautiful','pay',1,2,[11,23,25,'good'],16]
li[1] = li[1].capitalize()
print(li[1])   # Pay

(3)列表元素中替换字符串的方法:replace()

replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次

li = ['beautiful','pay',1,2,[11,23,25,'good'],16]
li[4][3] = li[4][3].replace('good','江河')
print(li)

#  ['beautiful', 'pay', 1, 2, [11, 23, 25, '江河'], 16]

(4)元组为只读列表,可循环查询,可切片(儿子不能修改,孙子能改)

li = ('beautiful','pay',1,2,[11,23,25,'good'],16)
li[4][1] = '列表'
print(li)

# ('beautiful', 'pay', 1, 2, [11, '列表', 25, 'good'], 16)


li = ('beautiful','pay',1,2,[11,23,25,'good'],16)
li[4] = '列表'
print(li)

# 报错
# TypeError: 'tuple' object does not support item assignment

(5)列表转成字符串连接list ---> str  用join()方法(注意:列表必须是纯字符串)

li = ['1212','江河']
s = ''.join(li)
print(s)

(6)字符串转换成列表str(str---->list)用split(),同时也可以截取字符串

s = "asd 江 河"
s1 = s.split() # 转换成列表 
s2 = s.split('d')[0] # 截取部分字符串 
print(s1)  #  ['asd', '江', '河']
print(s2) # as

(7)range(start, stop[, step])函数可以创建一个整数列表,一般用在for循环中,start默认是0,stop结束,不包括

#for循环
for i in range(0,10,2):
    print(i)
for i in range(10,0,-2): # 倒着打印
    print(i)



#通过使用rang来打印列表中列表元素
li = ['beautiful','pay',1,2,[11,23,25,'good'],16]
for i in range(len(li)):
    if type(li[i]) == list:
        for i in li[i]:
            print(i)
    else:
        print(li[i])

(8)input:计算用户输入的内容input中索引为奇数and并且对应的元素为数字的个数isdigt()(没有则个数为0)

while 1:
    count = 0
    number1 = input('请输入数字:')
    for i in range(len(number1)):
        if i%2 != 0 and number1[i].isdigit():
            count += 1
    print(count)

=======================练习==============================

1、lis = [2,3,'k',['qwe',20,['k',['tt',3,'1']],89],'ab','adv']

1)将列表lis中的’tt’变成大写(用两种方式)。

lis = [2,3,'k',['qwe',20,['k',['tt',3,'1']],89],'ab','adv']
# lis[3][2][1][0] = 'TT'
lis[3][2][1][0] = lis[3][2][1][0].upper()
print(lis)

2)将列表中的数字3变成字符串’100’(用两种方式)。

lis[1] = '100'
lis[3][2][1][1] = '100'
print(lis)

3、开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符: 敏感词列表 li = ["李老师","东京",”兰花”,”衣服”] 则将用户输入的内容中的敏感词汇替换成***,并添加到一个列表中; 如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。(有问题?)

li_replace = []
while 1:
    input_1 = input("请输入")
    li_1 = ["李老师", "东京",'兰花','衣服']
    for i in li_1:
        if i in input_1:
            input_1 = input_1.replace(i,"***")
    li_replace.append(input_1)
    print(li_replace)

猜你喜欢

转载自blog.csdn.net/weixin_41253809/article/details/82661662