day04

二、列表的操作

 

2.1:列表的索引与切片

复制代码
l1 = ['一帆', 100, 'py', 'code', 'wyf', 'students', 'teacher']

1,列表的索引
ret = l1[0]
ret1 = l1[1]
print(ret1,type(ret1))
print(l1[-1])
print(l1[-2])

2,切片:  顾头不顾尾
print(l1[:4])
print(l1[:5:2])

倒叙取值
print(l1[-1:-4:-1])
复制代码

 

2.2:列表的常用操作:
  增  删  改  查

复制代码
l1 = ['一帆', 100, 'py', 'code', 'wyf', 'students', 'teacher']

增:
3,append 追加
l1.append('yifan') l1.append(100) l1.append([1, 2, 3]) print(l1) 4,insert 插入 l1.insert(1,'小潘') 5,extend 迭代着追加 l1.extend('alex') l1.extend(['肖锋', 666])
复制代码

 

复制代码
删
6,pop 按照索引删除,会将删除的元素作为返回值返回
ret = l1.pop(0)
print(ret)

7,remove 按照元素删除
ret = l1.remove('武大')
print(ret)

8,clear 清空列表
l1.clear()

9,del

1,按照索引删除
2,按照切片(可以加步长)删除
3,删除整个列表

del l1[-2]
del l1[1:]
del l1[::2]
del l1


复制代码
复制代码

10,改某个元素
print(l1[0]) l1[0] = '男神'
切片改 l1[:3] = 'abc' l1[:3] = 'abcdefghigk'
切片(步长) 改 必须一一对应 l1[1:4:2] = 'a' l1[1:4:2] = 'a2' l1[1:4:2] = [1,2,3] # 错误
复制代码

 

复制代码

11,按照索引,按照切片(步长查询)

for 循环 for i in l1: print(i) print(l1)
复制代码

 

复制代码
其他方法:
l1 = ['一帆', '小白', '张老师', '一帆', '一帆']
12,len
print(len(l1))  # 获取列表的长度(总个数)

13,count 计算某个元素出现的次数 print(l1.count('一帆'))
14,index 通过元素找索引,找到第一个就返回,找不到就报错 print(l1.index('小白')) print(l1.index('一帆')) print(l1.index('一帆1'))

l1 = [4, 5, 3, 9, 8, 7, 6, 1] 15,sort 从小到大排序 l1.sort() l1.sort(reverse=True) # 从大到小 l1.reverse() # 反转 print(l1)
复制代码

 

二、列表的嵌套

复制代码
l1 = [1, 2, 'yifan', [1, 'wang', 3,]]

'''
1, 将l1中的'yifan'变成大写并放回原处。
2,给小列表[1,'wang',3,]追加一个元素,'ppts'。
3,将列表中的'wang'通过字符串拼接的方式在列表中变成'wangsd'
'''
复制代码
复制代码
1
print(l1[2])
print(l1[2].upper())
l1[2] = l1[2].upper()
print(l1)

2
print(l1[-1])
small_l = l1[-1]
small_l.append('ppts')
print(l1)

3
print(l1[-1][1])
print(l1[-1][1] + 'sd')
l1[-1][1] = l1[-1][1] + 'sd'
# l1[-1][1] += 'sd'
print(l1)
复制代码

 

 

三、元组

 

复制代码
可索引,切片
print(tu1[1])
print(tu1[:3])

元组只能查不能改
索引,切片(步长) 查询

for i in tu1: print(i) print(len(tu1)) print(tu1.count('alex')) print(tu1.index('alex')) 可以删除元组 del tu1 print(tu1) 元组 只是不能修改第一层, tu1 = (1, 'alex', [1,2,3], True, (1,2,3)) 儿子不能改,孙子可能改。 tu1[2].append('小白') tu1.append(666) print(tu1)
复制代码

 

 

四、range  :可控制范围的数字列表

复制代码
range(1,10)  # 顾头不顾尾
print(range(1,10))
for i in range(1,10):
    print(i)

1 ~ 100 for i in range(1,101): print(i)
for i in range(2, 101, 2): print(i)
10 ~ 1 for i in range(10, 0, -1): print(i)
for i in range(10): print(i)
# 应用: # range多与for循环配合。 l1 = ['yifan', 'wang', '小白', 100, 1, 2, 3] for i in range(len(l1)): print(i)
复制代码

 

 

补充知识点

复制代码
补充知识点:
1.查看一个类中所有的可用方法:
    [x for x in dir(str) if not x.startswith('_')]
    sorted([x for x in dir(str) if not x.startswith('_')])
    
2.str类中find,index的区别

3.判断开始或者结束字符串的注意事项:
    startswith:
    endswith:
    
    判断一个文件,是否是jpg格式的图片?
        filename后缀有可能大写和小写混用,所以要先统一一下。统一成大写或者小写都可以。
        
        伪代码:
        if filename.lower().endswith('.jpg'):
            ok
            
    

4.切片操作总结:
    格式:
        [起始值:结束值:顺序和步长]
        
    1.切片的顺序取决于最后一个参数,正数:正序;负数:倒序,默认是正序
    
    2.正序时起始值在结束值右侧,或者倒序时起始值在结束值左侧,都会返回空字符串。
        s = 'Hello'
        s[3:2:2]    -> ''
        s[1:3:-2]    -> ''
        即:切片不会跨越字符串的首尾。
    3.正数索引和负数索引可以混用。只要能指到正确的元素即可。
        
        
5.总结str类中涉及到从右侧开始的操作:
    rfind                从右侧查找
    rindex                从右侧查找
    rjust                从右侧对齐
    rstrip                从右侧删除空白字符
    rsplit                从右侧切分
    rpartition            从右侧分组
posted @ 2019-03-06 20:43  星空之主  阅读(176)  评论(0编辑  收藏  举报