Python基础学习三 list-增删改查、切片、循环、排序

一、list 增删改查

1、增加

方式一:

stus = ['xiaohei','xiaobai','xiaohuang','cxdser']

stus.append('test001')#从最后面开始插入

print(stus)

输出:['xiaohei', 'xiaobai', 'xiaohuang', 'cxdser', 'test001']

 

方式二:

stus = ['xiaohei','xiaobai','xiaohuang','cxdser']

stus.insert(1,'test002') #从指定位置插入,这个1代表下标

print(stus)

输出:['xiaohei', 'test002', 'xiaobai', 'xiaohuang', 'cxdser']

 

注意:

stus = ['xiaohei','xiaobai','xiaohuang','cxdser']

stus.insert(1000,'test003') #如果你指定的下标不存在,那么就是在末尾添加

print(stus)

输出:['xiaohei', 'xiaobai', 'xiaohuang', 'cxdser', 'test003']

 

2、修改

stus = ['xiaohei','xiaobai','xiaohuang','cxdser']

stus[2]='louis'

print(stus)

输出:['xiaohei', 'xiaobai', 'louis', 'cxdser']

 

3、查看

stus = ['xiaohei','xiaobai','xiaohuang','cxdser']

stus[2]='louis'

print(stus)

print(stus[-1]) #负数表示倒数

print(stus.count('louis'))#查看某个元素在这个里面的个数,如果该元素不存在,那么返回0

输出:

['xiaohei', 'xiaobai', 'louis', 'cxdser']

cxdser

1

 

4、删除

stus = ['test000','test001','test002','test003','test004']

 

stus.pop(0)#默认删除最后一个元素,如果指定下标,那么删除指定的元素

print(stus)

输出:['test001', 'test002', 'test003', 'test004']

stus.remove('test002')#删除list里面的一个元素

print(stus)

输出:['test001', 'test003', 'test004']

del stus[1]

print(stus)

输出:['test001', 'test004']

stus.clear()#清空整个list

print(stus)

输出:[]

 

5、排序

reverse()方法

stus = ['test000','test001','test002','test003','test004']

stus.reverse()#反转list

print(stus)

输出:['test004', 'test003', 'test002', 'test001', 'test000']

 

sort()排序方法

nums = [9,31,345,12,457,2352,12143,2321]

nums.sort()

print(nums)

输出:[9, 12, 31, 345, 457, 2321, 2352, 12143]

nums.sort(reverse=True) #排序,默认排序是升序,如果指定了reverse=True就是按照降序拍

print(nums)

输出:[12143, 2352, 2321, 457, 345, 31, 12, 9]

 

sorted()方法

a = [5, 7, 6, 3, 4, 1, 2]

b = sorted(a) #即可以保留原列表,又能得到已经排序好的列表

print(a)

print(b)

输出:[5, 7, 6, 3, 4, 1, 2]

[1, 2, 3, 4, 5, 6, 7]

c=sorted('www.cnblogs.com')

print(c)

输出:['.', '.', 'b', 'c', 'c', 'g', 'l', 'm', 'n', 'o', 'o', 's', 'w', 'w', 'w']

 

 

二、多维数组

1、二维数组 三维数组

two_list = [123,456,[789,10,11]]

three_list = [ 123, 456, [789,10,11, ['hahaha','1234'] ]]

print(two_list[2][1])

输出:10

a = [1,2,3]

b = [4,5,6]

a.extend(b)#合并两个list

print(a)

print(b)

输出:[1, 2, 3, 4, 5, 6]

[4, 5, 6]

 

三、list切片、循环

stus = ['test000','test001','test002','test003','test004']

 

stus1=stus[1:4] # 取下标1至下标4之间值,包括1,不包括4

print(stus1)

输出:['test001', 'test002', 'test003']

stus2=stus[1:-1] # 取下标1至-1的值,不包括-1

print(stus2)

输出:['test001', 'test002', 'test003']

stus3=stus[0:3] # 取下标0至3的值,不包括3

print(stus3)

输出:['test000', 'test001', 'test002']

stus4=stus[:3] # 取下标0至3的值,不包括3,和上面的效果一样,0可以省略不写

print(stus4)

输出:['test000', 'test001', 'test002']

stus5=stus[2:] # 取从第二个下标开始的后面所有元素

print(stus5)

输出:['test002', 'test003', 'test004']

 

总结:切片是不包含后面那个元素的值的,记住顾头不顾尾;

 

#切片同样适用于字符串,字符串也有下标

title='今1天234发5苹67果890'

print(title[:6])

输出:今1天234

 

查询遍历:

list1 = ["这", "是", "一个", "测试?"]

for a in range (len(list1)):

print(a ,list1[a])#注意缩进

 

list1 = ["测试", "一个", "是", "这"]

for index, item in enumerate(list1):

print(index, item)#注意缩进

输出: 0 测试

1 一个

2

3

 

例子:非空即真、非0即真;strip()验证是否为空

for i in range(3):

username = input('username:').strip()

passwd = input('passwd:').strip()

if username and passwd:

if username=='louis' and passwd=='123':

print('%s欢迎登录'%username)

break

else:

print('账号/密码错误!')

else:

print('账号/密码不能为空')

else:

print('错误失败次数太多!')

 

 

posted on 2018-01-02 17:05  louis_w  阅读(250)  评论(0编辑  收藏  举报

导航