Python第四天
列表的初识 2 索引值 切片 (步长)3 列表的增删改查 4列表的嵌套一定要会 5 range与for循环结合
1 列表的初识
字符串:只是存储少量的数据 ,字符串操作后的返回值都是字符串(单一)
list=【 100,‘’Alex“,True,【1,2,3】 承载任意数据类型,存储大量的数据
Python常用的容器型数据类型
列表是有序的 有索引值的 可切片(步长) 方便取值
2 列表的索引 步长 切片
例子
li=[100,'taiba',True,[1,2,3]]
# #索引
# l1=li[1]
# print(l1)
li=[100,'taiba',True,[1,2,3]]
#切片
l1=li[-1:-3:-1]
print(l1)
li=[1,3,2,'a',4,'b',5,'c']
# l1=li[-3:0:-2]
# print(l1)
2 列表的增删改查
列表的创建
#列表的创建
#方法一:
li=[1,2,'alex']
#方法二:
li=list()#创建空列表
li=list('dasdgjjlkladdallsjl')
#方式三:列表推导式
容器型的数据都可以增删改查
#增
# #append:在源列表的基础上追加在最后 。append(x就是追加的内容分
# # l1.append('xx')#这一句是指令 追加
# # #print(l1,append('xx'))#错误的 不能打印指令
# # print(l1)
#
# #例子
# # l1=['taib','nvshen','susie','xiaobangzhu','炎龙']
# # while 1:
# # name=input('ingshuruxingming:(shuruQhuoqtuichu) ')
# # if name.upper()=='Q':
# # print('shurutuichule')
# # break
# # l1.append(name)
# # print(l1)
#
# #insert方法 。insert(i位置,x加入的内容)
# l1=['taib','nvshen','susie','xiaobangzhu','炎龙']
# l1.insert(2,'高兴')
# print(l1)
#迭代着追加 extend 。extend(t是迭代的元素)
# l1.extend('abcd')
# print(l1)
# #迭代着增加 extend
l1.extend(['alex',1,3]) 追加list中元素
print(l1)
删
#删
1 按索引位置去删 list。pop(i是索引位置) pop()默认删除最后一个
l1=['taib','nvshen','susie','xiaobangzhu','炎龙']
l1.pop(-1)
print(l1)
2 制定元素去删 remove list。remove(x是内容是指定元素) 如果有多个重名元素 默认从左边删除第一个
l1=['susie','taib','nvshen','susie','xiaobangzhu','炎龙','susie']
l1.remove('susie')
print(l1)
3 清空list 用clear
# l1=['susie','taib','nvshen','susie','xiaobangzhu','炎龙','susie']
# l1.clear()
# print(l1)
4 del 按索引删
l1=['susie','taib','nvshen','susie','xiaobangzhu','炎龙','susie']
del l1[-1]
print(l1)
按切片(步长)
l1=['susie','taib','nvshen','susie','xiaobangzhu','炎龙','susie']
del l1[::2]
print(l1)
改
1 按索引值改 就是按索引值重新赋值
l1=['susie','taib','nvshen','susie','xiaobangzhu','炎龙','susie']
l1[0]='nansheng'
print(l1)
2 按切片改 从索引值是2开始到最后切片后重新赋值成可迭代的元素
l1=['susie','taib','nvshen','susie','xiaobangzhu','炎龙','susie']
l1[2:]='fffffffffffffffffffff'
print(l1)
3 按切片 步长 改 重新赋值元素和源列表中元素位置要一一对应替换
l1=['susie','taib','nvshen','susie','xiaobangzhu','炎龙','susie']
l1[::2]='ffff'
print(l1)
4查
索引 切片 (步长) for
for
l1=['susie','taib','nvshen','susie','xiaobangzhu','炎龙','susie']
for i in l1:
print(i)
5列表的嵌套 重中之重 关键是不断的找索引值
l = [2, 30, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
# 将列表lis中的"tt"变成大写(用两种方式)。
# 将列表中的数字3变成字符串"100"(用两种方式)。
# 将列表中的字符串"1"变成数字101(用两种方式)。
# l[3][2][1][0]=l[3][2][1][0].upper()
# print(l)
# l[3][2][1][1]=str(l[3][2][1][1]+97)
# print(l)
# l[3][2][1][-1]=int(l[3][2][1][-1])+100
# print(l)
6元组 只读列表 存储大量的数据 可以索引 切片(步长) 了解
没有增删改 只能读
元组中有列表 列表中可以增删改
应用 重要数据 用户名 密码 个人信息 不想让别人改动的一些数据 存在元组中
# t = ('a', 'b', '太白', 3, [1,2,3])
# # t1=t[0]
# # t2=t[::2]
# # print(t[0])
# # print(t2)
# # for i in t:
# # print(i)
# # print(len(t))
# t[-1].append(3)
# print(t)
元组的拆包 分层赋值
a,b =(1,2)
print(a,b)
7 range 类似于列表的容器 自定制数字范围的数字列表
for i in range(10):
for i in range(1,100):
for i in range (2,100,2):最后一个2是步长
for i in range(100,2,-2):最后一个数字是步长
l = [1,2,3,'alex','tai']
# for i in range(len(l)):
# print(i)
练习:
l=range(5)
# print(l[1:3])# range(1,3)
# print(l[-1])# 4
#
# for i in range(1,5,-1):
# print(i)# 返回是什么也没有
content=input('qingshuru:')#输入字符串加法格式
l=content.split('+')#list表用split(‘+’)分隔
#print(l)
sum=0
for i in l:#循环求和
sum=sum+int(i)
print(sum)
#字符串fhda1234s1fh9876+=9fjd 统计里面的各位数字一共有多少次
# content=input('qingshuru: ')
# count=0
# for i in content:
# if i.isdecimal():
# count+=1
# print(count)
#求和1+2+3+。。。99中除去88
# sum=0
# for i in range(1,100):
# if i ==88:
# continue
# sum=sum+i
# print(sum)
#判断一句话是否是回文 上海自来水来自海上
# l=input('qingshuru:')
# if l[:]==l[::-1]:从前到最后[ : ] 从最后到头【 : :-1】
# print('duil')
注意;切片时一定要有:
s=''
# l=['alex','wus','taib']
# # s='_'.join(l)#把列表转换成字符串用join 特别简单
# # print(s)
# for i in l:
# s=s+'_'+i
# print(s[1:])#s的最前面有_用切片的思想
作业
# #查找li中的元素,移除每个元素的空格,并找出以A或a开头,并以c结尾的所有元素
# #并添加到一个新列表中,最后打印这个新列表
# li=['taibai ','alexc',"AbC ",'egon',' ritian','wushir',' aqc']
# l=[]
# for i in li:
#
# if (i.strip().upper().startswith( 'A') ) and i.strip().endswith('c'):
# l.append(i.strip())
# print(l)
#开发敏感词语过滤程序,提示用户输入input评论内容,如果用户输入的内容中包含特殊的字符
# #敏感词列表l=['canglaoshi','dongjingre','wutenglan','boduoyejieyi']
# #则将用户输入的内容中的明娜词汇替换成等长度的*,并添加到列表中
# #如果用户输入的内容没有明娜词汇,则直接续加到上述的列表中
# l=['canglaoshi','dongjingre','wutenglan','boduoyejieyi']
# l1=[]
# s=input('qingshuru:')
# for i in l:
# if i in s: 这步写程序基本是人的想法用语言学出来
# s=s.replace(i,'*'* len(i))# 关键就是s.replace(i,'*'* len(i))赋值给s 要不每次循环都是原来输入的评论
# #最终结果是输出李表中的四次循环
# l1.append(s)
# print(l1)
# l=[1,3,4,'alex',[3,7,8,'tai'],5,'wu']
# #循环打印列表中的每个元素,遇到列表则再循环点出它里面的元素
# for i in l:
# if type(i)==list:# 想法巧妙 解决问题的关键 利用type()判断I这个元素是否为列表 是的话 循环I
# for j in i:
# print(j)
# else:
# print(i)

浙公网安备 33010602011771号