python学习笔记 day04 列表增删改查
写了一个python文件,想在终端中运行:windows+r(或者cmd)输入python+想要运行的py文件所在的目录 即可。
pycharm的安装
参考博客:
https://www.jianshu.com/p/042324342bf4
https://blog.csdn.net/zhizunyu2009/article/details/81541652
激活地址:
http://idea.lanyus.com/
知识点小结
1.有时候我们需要用户输入age,salary等信息,输入的数据应该是数字组成的,由于input输入的信息都是str类型,所以我们可以使用age.isdigit()来检验输入的数据必须合格~;
2.如果程序执行到某一步,想要退出程序,可以使用exit("error,and will quit~);
3.python3中是没有int 和 long 之分的;
列表增删改查
之前说过对于字符串的操作都会产生一个新的字符串,但是列表的操作比如append却是对原列表进行操作;
append()方法:
作用于原来列表,在列表的末尾增加元素;
L=['xuanxuan','heheh','keek'] while True: name=input("please input a name:") if name=='q': break else: L.append(name) print(L)
insert()方法:
需要提供的参数是要插入的元素,以及该元素想要插入的索引位置
L=['xuanxuan','keke','xixi','dongdong'] L.insert(2,'mama') print(L)
运行结果:
['xuanxuan', 'keke', 'mama', 'xixi', 'dongdong']
extend()方法:
需要提供的参数是一个可迭代的对象!,最终插入的结果是在列表的末尾依次插入该可迭代对象中的元素
L=['xuanxuan','keke','xixi','dongdong'] L.extend('123') L.extend([4,5,6]) print(L)
运行结果:
['xuanxuan', 'keke', 'xixi', 'dongdong', '1', '2', '3', 4, 5, 6]
注意上面当extend()中的参数是list对象时,插入到原列表的元素是list中的一个个元素!而不是[1],[2],[3]这种结构
L=['xuanxuan','keke','xixi','dongdong'] L.extend(123) print(L)
运行结果:
TypeError: 'int' object is not iterable
是因为int不是可迭代对象!,不能作为extend方法的参数,因为123 int类型不是由1 2 3 三个数组成的,而是123是一个数字,整体
pop()方法:按索引删除,有返回值
用于删除list的元素,传入的参数是所要删除元素的索引,不写索引,默认删除最后一个元素,并且该方法是有返回值的,返回值就是所要删除的元素值
L=['xuanxuan','keke','xixi','dongdong'] L.pop(1) print(L)
运行结果:
['xuanxuan', 'xixi', 'dongdong']
L=['xuanxuan','keke','xixi','dongdong'] L.pop() #不写参数,默认删除最后一个元素 print(L)
运行结果:
['xuanxuan', 'keke', 'xixi']
remove():按照元素删除,没有返回值
L=['xuanxuan','keke','xixi','dongdong'] L.remove('xuanxuan') print(L)
运行结果:
['keke', 'xixi', 'dongdong']
clear():清空列表,会返回一个空的list
L=['xuanxuan','keke','xixi','dongdong'] L.clear() print(L)
运行结果:
[]
del():从内存中删除列表
L=['xuanxuan','keke','xixi','dongdong'] del(L) print(L)
由于L已经被删除了,所以再运行只会报错
del L[a:b]: 可以删除一块内容,切片删除
L=['xuanxuan','keke','xixi','dongdong'] del L[:3] print(L)
运行结果:
['dongdong']
改元素:可以直接按照索引改值:
L=['xuan','ke','fang'] L[0]='xuanxuan' print(L)
['xuanxuan', 'ke', 'fang']
改元素可以按照切片来修改:效果就是会把迭代对象的每一个元素都填进去
L=['xuanxuan','keke','fangfang','xiaxia'] L[:2]='嘻哈可爱' print(L)
运行结果:(就是把原来0 1 位置的元素去掉,用新的属于迭代对象中的元素去填充)
['嘻', '哈', '可', '爱', 'fangfang', 'xiaxia']
所以如果按照索引来修改,元素需要对应(只能是一个),如果是按照切片来修改,前后元素个数不需要对应,只是会把索引对应位置的元素去掉,用迭代对象中的元素去填充!
列表和字符串共有的一些方法:
len(): list长度;
.count(): 求某一个元素出现的次数
.index(): 查找某一个元素的索引(字符串除了index()外还有find()方法)
.sort(): 对list进行排序(有比较意义的)(默认从小到大排序)
.sort(reverse=True) :参数reverse改为True后,可以从大到小倒排序
.reverse():可以实现原有list的反转(不是排序)
L=[2,6,1,9,3,7,0,8] print(len(L)) print(L.count(2)) print(L.index(8)) # L.sort() # print(L) # L.sort(reverse=True) # print(L) L.reverse() print(L)
列表的嵌套
L=['xuanxuan','啊哈','你好'] #如果想把列表中的啊哈改为啊嘻,可以有两种方法: # L[1]='啊嘻' # L[1][1]='嘻' #错误做法,因为L[1]是str类型,字符串是不能复制操作的 L[1]=L[1].replace('哈','嘻') #右边是把L[1]也就是'啊嘻'这个str中的‘哈’替换成‘嘻’,得到的新的字符串复制给L[1] print(L)
这里在强调一下,str字符串对象是不可以赋值操作的!要想修改字符串中的值可以使用str.replace()方法~