4 列表 元组

一.列表的增删改查
列表是可变数据类型 有序 可以存储任意数据类型
1.增
lis.append(元素) 追加 #返回值为None
lis.insert(索引,元素) #在索引位置插入元素
lis.extend(元素) 迭代添加

2.删
1. pop() 默认删除最后一个
pop(索引值) 有返回值
2.remove(元素) 移除第一个元素
3.del lis[start,end,step] 切片删除

4.clear()清空

3.改
li[index]="元素"
切片修改
lis[1:3]=[元素1,元素2]
如果切片步长为不是1,需要注意元素个数 如果切片步长为1则不需要注意元素个数

4.查
for i in lis:
print(i)
for i in range(len(lis)):
print(i,lis[i])
5.其他操作
lis.sort() #升序
lis.sort(reverse=True)# 降序
lis.reverse()#反转,倒着排
lis.count(元素) 数数
len(lis)
lis.index(元素)

二.元组 tuple 只读列表
1.不可变数据类型: 不可变指的是元组的第一层元素内存地址不可变
2.子元素内部是否可变,取决于子元素是否是可变数据类型
3.当元组中只有一个元素时需要在后面用逗号分隔开 t=(1,)
t1=(1)
print(t1,type(t1)) # 1 <class 'int'>
t2=(1,)
print(t2,type(t2)) #(1,) <class 'tuple'>

4.元组的方法
tup.count(元素)
tup.index(元素)
len(tup)

for i in rup:
print(i)


三.作业易错点和思路总结
1. str.strip(ab) #迭代删除前后的a和b
name="baformAaab"
移除name变量开头的a"与最后的"b",并输出处理结果
print(name.strip("ab") #结果:formA

2.str.capitalize() #只有首字母大写,其他字母都变为小写
print(name.capitalize()) #结果:Baformaaab

3.int("1 ") 会自动去空格,转化出数字类型

4.思路
1.累加思想 打印字符串,1个,2个,3个.......
str2="中国是一个伟大的国家"
需求:
分别打印: 中 , 中国 ,中国是,.......
sum=""
for i in str2:
print(sum)
sum+=i

四.经典案例
#一.百家姓
s = """
赵钱孙李,周吴郑王。
冯陈褚卫,蒋沈韩杨。
朱秦尤许,何吕施张。
孔曹严华,⾦魏陶邓。
"""

name=input("请输入姓名:").strip()
s2=s.replace(",","").replace("。","").replace("\n","").strip() #先把逗号和句号替换成空字符串
# 方法一:
sum=""
for i in name :
    sum+=i
    if sum in s:
        print("在百家姓中")
        break
else:
    print("不在百家姓中")
# 方法二:
flag=0
for i in name:
    sum+=i
    if sum in s:
        flag+=1

if flag==0:
    print("不在")
else:
    print("在")

# 二.判断是否是回文

# 方法一: 切片思路
content=input("请输入一句话:")
if content==content[::-1]:
    print("是回文")
else:
    print("不是回文")
# 
# 方法二:用while 循环
# 倒着排列好再判断
# 如何实现倒着排列:

content=input("请输入一句话:")
i=len(content)-1
sum=""
while i>=0:
    # 1.需要倒着取索引值---->通过索引获取元素
    # 2.再用字符串拼接------>累加思想
    sum+=content[i]
    i-=1
print(sum)
if sum==content:
    print("是回文")
else:
    print("不是回文")

#方法二  用for 循环

content=input("请输入一句话:")
# print("用户输入的内容:",content)
sum=""
li=[]
for i in content:
    li.append(i)
li.reverse()
for i in li:
    sum+=i
# print("用户输入内容倒着排:",sum)

if sum==content:
    print("是回文")
else:
    print("不是回文")

  

posted @ 2018-10-22 15:25  冰底熊  阅读(216)  评论(0编辑  收藏  举报