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()方法~

 

posted @ 2018-08-18 13:17  写的BUG代码少  阅读(185)  评论(0编辑  收藏  举报