python笔记4—day4

知识点

1、列表的索引和切片(跟字符串的索引和切片一样)

li=['alex',[1,2,3],'user','age','','abc']
l1=li[0]
print(l1)#结果为alex
l2=li[1]
print(l2)#结果为[1, 2, 3]
l3=li[0:3]
print(l3)#结果为['alex', [1, 2, 3], 'user']

2、列表的增删改查

2.1、增

#append 增加到列表最后面
li=['alex',[1,2,3],'user','age','','abc']
li.append('name')
print(li))#结果为['alex', [1, 2, 3], 'user', 'age', '六', 'abc', 'name']

#持续增加,但输入'Q'退出增加
li=['alex',[1,2,3],'user','age','','abc']
while 1:
    name = input('请输入需要添加员工的姓名:')
    if name.strip().upper()=='Q': #1)以防用户输入的时候前后有空格,用strip操作方法删除前后空格;2)以防用户输入的小写的'q',用upper操作方法转换成大写的'Q'
        break
    else:
        li.append(name)#用列表的append操作方法增加到列表里面
        print(li)

#insert 插入在某个元素后面,比如:在'age'后面插入一个'hobby'
li=['alex',[1,2,3],'user','age','','abc']
li.insert(4,'hobby')#'age'在li列表里的索引是3,但我们是在他后面加入元素,所以我们填写的索引是4
print(li)

#extend 迭代插入,也是插入在最后面。PS:不能迭代插入int数据类型,会报错
li=['alex',[1,2,3],'user','age','','abc']
li.extend('123')
print(li)#结果为['alex', [1, 2, 3], 'user', 'age', '六', 'abc', '1', '2', '3']

li=['alex',[1,2,3],'user','age','','abc']
li.extend(123)
print(li)

2.2、删

#pop 按索引删除
li=['alex',[1,2,3],'user','age','','abc']
i=li.pop(1)#pop是有返回值的
print(li,i)
i=li.pop()#不输入索引,默认删除最后一个
print(li,i)

#remove 按元素删除,没有返回值,它返回的None
li=['alex',[1,2,3],'user','age','','abc']
i=li.remove('alex')
print(li,i)

#clear 清空列表
li=['alex',[1,2,3],'user','age','','abc']
li.clear()
print(li)

#del 删除这个列表和切片删除
li=['alex',[1,2,3],'user','age','','abc']
del li[0:2]#切片删除元素
print(li)#结果为['user', 'age', '六', 'abc']

li=['alex',[1,2,3],'user','age','','abc']
del li#删除这个列表
print(li)#结果报错,因为没有这个列表了

2.3、改

#按索引去改
li=['alex',[1,2,3],'user','age','','abc']
li[0]='liu'
print(li)#结果为['liu', [1, 2, 3], 'user', 'age', '六', 'abc']

#切片去改
li=['liu', [1, 2, 3], 'user', 'age', '', 'abc']
li[0:2]='123456'#把你要切片修改的两个元素先删除,在把输入的元素迭代增加到里面
print(li)#结果为['1', '2', '3', '4', '5', '6', 'user', 'age', '六', 'abc']

li[0:2]=['liu','xiao']
print(li)#结果为['liu', 'xiao', 'user', 'age', '六', 'abc']

2.4、查

li=['alex',[1,2,3],'user','age','','abc']
#for循环查看
for i in li:
    print(i)
#切片查看
print(li[0:2])

2.5、一些公共的方法

#len 查看列表的长度
li=['alex',[1,2,3],'user','age','','abc']
l1=len(li)
print(l1)

#count 查看某个元素在列表里面出现的次数
li=['alex',[1,2,3],'user','age','','abc','age']
num=li.count('age')
print(num)

#index 查看某个元素的索引,如果没有出现会报错
li=['alex',[1,2,3],'user','age','','abc']
l1=li.index('user')
print(l1)

2.6、排序

#sort 正向排序
li=[1,3,5,7,8,2,4,6]
li.sort()
print(li)
#反向排序 li=[1,3,5,7,8,2,4,6] li.sort(reverse=True) print(li)
#反转 li=[1,3,5,7,8,2,4,6] li.reverse() print(li)

2.7、列表的嵌套

li=['alex',[1,2,'liu'],'user','age','','abc']
#在列表找出user的s这个元素
i=li[2][2]#第一个[2]里的数字代表要取出li列表索引为2的元素;第二个[2]里的数字代表从刚才取出元素中索引为2的元素
print(i)#结果为e

#在列表找出user的s这个元素
print(li[li.index('user')][li[li.index('user')].find('s')])#结果为s

#在列表找出[1,2,'liu']的2这个元素
i=li[li.index([1,2,'liu'])][li[li.index([1,2,'liu'])].index(2)]
'''
li.index([1,2,'liu']):找到这个[1,2,'liu']元素的索引
li[li.index([1,2,'liu'])]:利用上面找到的索引找出这个元素
li[li.index([1,2,'liu'])].index(2):前面跟上面一样,后面index(2)从刚才找到的元素里面再找索引为2元素
'''
print(i)#结果为2
#因为从列表取出的元素是字符串,也可以跟字符串的操作方法一起运用
li[0]=li[0].capitalize()
print(li)#结果为['Alex', [1, 2, 'liu'], 'user', 'age', '六', 'abc']

li[0]=li[0].capitalize()
li[li.index('alex')]=li[li.index('alex')].capitalize()
print(li)#结果为['Alex', [1, 2, 'liu'], 'user', 'age', '六', 'abc']

li[0]=li[0].capitalize()
li[li.index([1,2,'liu'])][li[li.index([1,2,'liu'])].index('liu')]=li[li.index([1,2,'liu'])][li[li.index([1,2,'liu'])].index('liu')].upper()
print(li)#结果为['alex', [1, 2, 'LIU'], 'user', 'age', '六', 'abc']

2.8、元祖

只读列表,可循环查循,可切片;儿子不能改,孙子可以改

tu=(1,2,'alex',[1,2,'liu'],3,'xiao')
print(tu[1])#结果为2
print(tu[0:3])#结果为(1, 2, 'alex')

#循环输出
tu=(1,2,'alex',[1,2,'liu'],3,'xiao')
for i in tu:
    print(i)

#在元祖里面的列表插入元素
tu=(1,2,'alex',[1,2,'liu'],3,'xiao')
tu[3][2]=tu[3][2].upper()
print(tu)#结果为(1, 2, 'alex', [1, 2, 'LIU'], 3, 'xiao')

tu[3].append('s')
print(tu)#结果为(1, 2, 'alex', [1, 2, 'LIU', 's'], 3, 'xiao')

tu[3].insert(1,'n')
print(tu)#结果为(1, 2, 'alex', [1, 'n', 2, 'LIU', 's'], 3, 'xiao')

2.9、join 操作方法

s='alex'
li=['ad','cd']
s1='_'.join(s)
li1=''.join(li)
print(s1,li1)#结果为a_l_e_x adcd

2.10、range 操作方法

for i in range(0,10):
    print(i)#正序输出1到9
for i in range(10):
    print(i)#正序输出1到9
for i in range(0,10,2):
    print(i)#正序输出0,2,4,6,8
for i in range(10,0,-1):
    print(i)#倒序输出10到1
for i in range(0,10,-1):
    print(i)#结果是空白,不会报错

课后习题

1、列表li=['alex','wusir','eric','rain','alex']完成以下操作

#1)计算列表的长度并输出
li=['alex','wusir','eric','rain','alex']
print(len(li))#结果为5

#2)列表中追加元素'seven',并输出添加后的列表
li=['alex','wusir','eric','rain','alex']
li.append('seven')
print(li)#结果为['alex', 'wusir', 'eric', 'rain', 'alex', 'seven']

#3)请在列表的第1个位置插入元素'Tony',并输出添加后的列表
li=['alex','wusir','eric','rain','alex']
li.insert(0,'Tony')
print(li)#结果为['Tony', 'alex', 'wusir', 'eric', 'rain', 'alex']

#4)请修改列表第2个位置的元素为'Kelly',并输出修改后的列表
li=['alex','wusir','eric','rain','alex']
li[1]='Kelly'
print(li)#结果为['alex', 'Kelly', 'eric', 'rain', 'alex']

#5)请将列表l2=[1,'a',3,4,'heart']的每一个元素添加到列表li中,一行代码实现不得循环添加
li=['alex','wusir','eric','rain','alex']
l2=[1,'a',3,4,'heart']
li.extend(l2)
print(li)#结果为['alex', 'wusir', 'eric', 'rain', 'alex', 1, 'a', 3, 4, 'heart']

#6)请将字符串s='qwert'的每个元素添加到列表li中,一行代码实现步的循环添加
li=['alex','wusir','eric','rain','alex']
s='qwert'
li.extend(s)
print(li)#结果为['alex', 'wusir', 'eric', 'rain', 'alex', 'q', 'w', 'e', 'r', 't']

#7)请删除列表中的元素'sric',并输出删除后的列表
li=['alex','wusir','eric','rain','alex']
li.remove('eric')
print(li)#结果为['alex', 'wusir', 'rain', 'alex']

#8)请删除列表中的第2个元素,并输出删除后的列表
li=['alex','wusir','eric','rain','alex']
li.pop(1)
print(li)#结果为['alex', 'eric', 'rain', 'alex']

#9)请删除列表中第2到第4个的元素,并输出删除后的列表
li=['alex','wusir','eric','rain','alex']
del li[1:4]
print(li)#结果为['alex', 'alex']

#10)请将列表元素反转,并输出反转后的列表
li=['alex','wusir','eric','rain','alex']
li.reverse()
print(li)#结果为['alex', 'rain', 'eric', 'wusir', 'alex']

#11)请计算出'alex'元素在列表出现的次数,并输出次数
li=['alex','wusir','eric','rain','alex']
print(li.count('alex'))#结果为2

2、列表li=[1,3,2,'a',4,'b',5,'c'],通过切片形成新的列表

#1)形成新的列表l1,l1=[1,3,2]
li=[1,3,2,'a',4,'b',5,'c']
l1=li[0:3]
print(l1)

#2)形成新的列表l2,l2=['a',4,'b']
li=[1,3,2,'a',4,'b',5,'c']
l2=li[3:6]
print(l2)

#3)形成新的列表l3,l3=[1,2,4,5]
li=[1,3,2,'a',4,'b',5,'c']
l3=li[0::2]
print(l3)

#4)形成新的列表l4,l4=[3,'a','b']
li=[1,3,2,'a',4,'b',5,'c']
l4=li[1:-2:2]
print(l4)

#5)形成新的列表l5,l5=['c']
li=[1,3,2,'a',4,'b',5,'c']
l5=li[-1]
print(l5)

#6)形成新的列表l6,l6=['b','a','3]
li=[1,3,2,'a',4,'b',5,'c']
l6=li[-3:0:-2]
print(l6)
#2)将列表中数字3变成字符串'100'
#方法一
li=[2,3,'k',['qwe',20,['k',['tt',3,'1']],89],'ab','adv']
li[1]='100'
print(li)

#方法二
li=[2,3,'k',['qwe',20,['k',['tt',3,'1']],89],'ab','adv']
li[li.index(3)]=li[li.index(3)].replace('3','100')
print(li)

猜你喜欢

转载自www.cnblogs.com/xiao-le/p/11370233.html