Python中列表的增删改查以及Python常用的内置方法

1.创建列表

数组:存储同一数据类型的集合 score = [10,20,30]
列表:可以存储任意数据类型的集合

1.数组的解释
------->题目要求
在数组中输入tom,bob,coco,alice,并输出数组
------->代码如下:

name = ['tom','bob','coco','alice']
print(name)
print(type(name))

------->测试结果如下:
在这里插入图片描述

2.创建列表
(1)创建一个普通的列表

------->题目要求
列表里可以存储不同的数据类型:
------->代码如下:

li = [1,1.2,'hello',True]
print(li)
print(type(li))

------->测试结果如下:
在这里插入图片描述

(2)创建一个嵌套的列表:
------->题目要求
列表嵌套:
------->代码如下:

li1 = [1,1.2,'hello',True,[1,2,3,4,5]]
print(li1)
print(type(li1))

------->测试结果如下:
在这里插入图片描述

2.列表的特性

(1)索引:
------->题目要求
举例说明列表的特性-索引:
------->代码如下:

service = ['http','ssh','ftp','dns']
#索引
print(service[0])
print(service[-1])

------->测试结果如下:
在这里插入图片描述
(2)切片:
------->题目要求
举例说明列表的特性-切片:
------->代码如下:

service = ['http','ssh','ftp','dns']
#切片
print(service[1:])	##除了第一个全部输出
print(service[:-1])	##除了最后一个全部输出
print(service[::-1])	##倒序输出

------->测试结果如下:
在这里插入图片描述

(3)重复
------->题目要求
举例说明列表的特性-重复:
------->代码如下:

service = ['http','ssh','ftp','dns']
#重复
print(service * 3)

------->测试结果如下:
在这里插入图片描述
(4)连接
------->题目要求
举例说明列表的特性-连接
------->代码如下:

service = ['http','ssh','ftp','dns']
#连接
service1 = ['mysql','firewalld']
print(service + service1)

------->测试结果如下:
在这里插入图片描述

(5)成员操作符
------->题目要求
举例说明列表的特性-成员操作符
------->代码如下:

service = ['http','ssh','ftp','dns']
service1 = ['mysql','firewalld']
##成员操作符
print('mysql' in service)
print('mysql' in service1)

------->测试结果如下:
在这里插入图片描述

(6)迭代
------->题目要求
举例说明列表的特性-迭代
------->代码如下:

service = ['http','ssh','ftp','dns']
#迭代
print('显示所有服务'.center(10,'*'))
for se in service:
    print(se)

------->测试结果如下:
在这里插入图片描述

3.列表里的嵌套列表的特性

(1)创建嵌套列表
------->题目要求
举例创建列表里的嵌套列表
------->代码如下:

service2 = [['http,80'],['ssh',22],['ftp',21]]
print(service2)

------->测试结果如下:
在这里插入图片描述

(2)索引
------->题目要求
举例说明列表(列表里嵌套列表)的特性-索引
------->代码如下:

service = ['http','ssh','ftp','dns']
#列表里嵌套列表
service2 = [['http',80],['ssh',22],['ftp',21]]
print(service2[0][1])
print(service2[-1][1])

------->测试结果如下:
在这里插入图片描述

(3)切片
------->题目要求
举例说明列表(列表里嵌套列表)的特性-切片
------->代码如下:

service = ['http','ssh','ftp','dns']
#列表里嵌套列表
service2 = [['http',80],['ssh',22],['ftp',21]]
print(service2[:][1])
print(service2[:-1][0])
print(service2[0][:-1])

------->测试结果如下:
在这里插入图片描述

(4)练习:
------->题目要求
假定有下面的列表:
names = [‘fentiao’,‘fendai’,‘fensi’,‘apple’]
输出结果为:‘I have fentiao,fendai,fensi and apple.’
------->代码如下:

names = ['fentiao','fendai','fensi','apple']
print('I have ' +','.join(names[:-1]) + ' and ' + names[-1])

------->测试结果如下:
在这里插入图片描述

4.列表的增加

(1)使用列表的特性-连接,将firewalld增加到列表
------->题目要求
举例说明使用连接的特性将firewalld增加到列表
------->代码如下:

service = ['http','ssh','ftp','dns']
#1.列表的连接
print(service + ['firewalld'])

------->测试结果如下:
在这里插入图片描述

(2)append表示追加,追加一个元素到列表中
------->题目要求
举例说明如何追加一个元素到列表中
------->代码如下:

service = ['http','ssh','ftp','dns']
#2.append表示追加一个元素到列表中
service.append('firewalld')
print(service)

------->测试结果如下:
在这里插入图片描述

(3)extend表示拉伸,追加多个元素到列表中
------->题目要求
举例说明如何追加多个元素到列表中
------->代码如下:

service = ['http','ssh','ftp','dns']
service.extend(['mysql','firewalld'])
print(service)

------->测试结果如下:
在这里插入图片描述

(4)insert:在指定索引位置插入元素
------->题目要求
举例说明如何将samba插入得到service列表中索引为1的位置
------->代码如下:

service = ['http','ssh','ftp','dns']
service.insert(1,'samba')
print(service)

------->测试结果如下:
在这里插入图片描述

5.列表的删除

(1)使用pop删除列表
------->题目要求
举例使用pop命令对列表进行删除
------->代码如下:

service = ['http','ssh','ftp','dns']
a = service.pop()
print('删除掉的元素:' + a)
print('列表中剩下的元素如下:')
print(service)

------->测试结果如下:
注意:pop命令删除时总删除的是列表的最后一个,而且删除之后依旧可以进行查看
在这里插入图片描述

(2)使用pop删除特定的元素
------->题目要求
举例使用pop命令删除ftp
------->代码如下:

service = ['http','ssh','ftp','dns']
a = service.pop(2)
print('删除掉的元素:' + a)
print('列表中剩下的元素如下:')
print(service)

------->测试结果如下:
在这里插入图片描述

(3)使用remove命令删除列表中的ssh
------->题目要求
举例使用remove命令删除列表中的ssh
------->代码如下:

service = ['http','ssh','ftp','dns']
a = service.remove('ssh')
print(type(a))
print('列表中剩下的元素如下:')
print(service)

------->测试结果如下:
在这里插入图片描述
注意:
1.结果中之所以变量a的类型是NoneType,是因为其ssh被彻底删除了,没有任何值
2.remove命令是指彻底删除列表中某一个元素

(4)使用del命令将service列表从内存中彻底删除
------->题目要求
举例说明如何使用del命令将列表彻底删除
------->代码如下:

service = ['http','ssh','ftp','dns']
del service
print(service)

------->测试结果如下:
在这里插入图片描述
注意:执行python程序后会出现NameErrot报错,是因为service列表已经被彻底删除了

6.列表的修改

(1)通过索引,重新赋值
------->题目要求
举例说明将通过修改service的索引,将http修改成mysql
------->代码如下:

service = ['http','ssh','ftp','dns']
service[0] = 'mysql'
print(service)

------->测试结果如下:
在这里插入图片描述

(2)通过切片,重新赋值
------->题目要求
举例说明将通过切片,将service中的前两个元素更改成’samba’和‘nfs’
------->代码如下:

service = ['http','ssh','ftp','dns']
print(service[:2])	##输出索引值为0和索引值为1的元素
service[:2] = ['samba','nfs']
print(service)

------->测试结果如下:
在这里插入图片描述

7.列表的查看

(1)查看列表中元素出现的次数
------->题目要求
查看service列表中’ftp’和’dns’分别出现的次数
------->代码如下:

service = ['ftp','ssh','ftp','dns']
print(service.count('ftp'))
print(service.count('dns'))

------->测试结果如下:
在这里插入图片描述
(2)查看指定元素的索引值
------->题目要求
查看’ssh’的索引值是多少
------->代码如下:

service = ['ftp','ssh','mysql','ftp']
print(service.index('ssh'))

------->测试结果如下:
在这里插入图片描述

(3)查看指定元素的索引值,这里指定索引范围查看
------->题目要求
查看’ftp’的索引值是多少
------->代码如下:

service = ['oo','ssh','ftp','ftp']
print(service.index('ftp',1,3))

------->测试结果如下:
在这里插入图片描述

8.列表中字符的排序

(1)对字符进行排序
------->题目要求
使列表中的字符依据ASCII码进行从小到大的排序
------->代码如下:

service = ['ftp','ssh','ftp','dns']
service.sort()
print(service)

------->测试结果如下:
在这里插入图片描述
注意:列表中的字符串排序是不区分大小写的

(2)对数字进行排序
------->题目要求
对列表中的数字进行排序
------->代码如下:

li = list(range(10))
print(li)

------->测试结果如下:
在这里插入图片描述

(3)将原有的列表顺序打乱
------->题目要求
导入随机数后,将原有的列表顺序进行两次打乱并能发现打乱的结果不同
------->代码如下:

import random
li = list(range(10))
print(li)
random.shuffle(li)
print(li)
random.shuffle(li)
print(li)

------->测试结果如下:
在这里插入图片描述

9.列表的终极练习:

(1)练习一:
------->题目要求
1.系统里面有多个用户,用户的信息目前保存在列表里面
users = [‘root’,‘westos’]
passwd = [‘123’,‘456’]
2.用户登陆(判断用户登陆是否成功
1).判断用户是否存在
2).如果存在
1).判断用户密码是否正确
如果正确,登陆成功,推出循环
如果密码不正确,重新登陆,总共有三次机会登陆
3).如果用户不存在
重新登陆,总共有三次机会
------->代码如下:

users = ['root','westos']
passwords = ['123','456']

#尝试登录次数
trycount = 0

while trycount < 3:
    inuser = input('用户名: ')
    inpassword = input('密码: ')

    trycount += 1

    if inuser in users:
        index = users.index(inuser)
        password = passwords[index]

        if inpassword == password:
            print('%s登录成功' %(inuser))
            break
        else:
            print('%s登录失败 : 密码错误' %inuser)
    else:
        print('用户%s不存在' %inuser)
else:
    print('尝试超过三次,请稍后再试')

------->测试结果如下:
在这里插入图片描述
在这里插入图片描述
(2)练习二:
------->题目要求(简易版)
1.后台管理员用户只有一个 用户:admin 密码:admin
2.管理员登录成功后,才能管理会员信息
3.会员信息包含:
添加会员信息
删除会员信息
查看会员信息
退出
------->代码如下:

print('管理员登陆'.center(50,'*'))
inuser = input('Username:')
inpasswd = input('Password:')
users = ['root','westos']
passwords = ['123','456']
i=0
if inuser == 'admin' and inpasswd == 'admin':
    while True:
        print("""
        --------------
            操作目录
        1.添加会员信息
        2.删除会员信息
        3.查看会员信息
        4.退出
        """)
        choice = input('请输入您的选择')
        if choice == '1':
            huiyuan = input('please input huiyuan username:')
            huiyuan_passwd = input('please input huiyuan password:')
            users.append(huiyuan)
            passwords.append(huiyuan_passwd)
            print( users[:])
            print( passwords[:])
        elif choice == '2':
            print('会员信息如下:')
            print(users[:])
            pop_choice = int(input("please input you want to delete username's index"))
            users.pop(pop_choice)
            print('删除后的会员信息如下:')
            print(users[:])
        elif choice == '3':
            print(users[:])
        elif choice == '4':
            exit()
        else:
            print('error')
else:
    print('请输入正确的管理员用户和密码')

------->测试结果如下:
程序:
在这里插入图片描述
运行结果:
在这里插入图片描述
在这里插入图片描述

10.python中常用的内置方法:

(1)枚举:返回索引值和对应的value值
------->题目要求
循环输出’hello’中每个字母所对应的索引以及对应的值
------->代码如下:

for i,v in enumerate('hello'):
    print(i,v)

------->测试结果如下:
在这里插入图片描述

(2)压缩两个字符串
------->题目要求
将s1字符串和s2字符串中的元素进行压缩并显示出来
------->代码如下:

s1 = 'abc'
s2 = '123'
for i in zip(s1,s2):
    print(i)

------->测试结果如下:
在这里插入图片描述

(3)压缩两个字符串并将其以“”的方式连接起来
------->题目要求
将s1字符串和s2字符串中的元素进行压缩并以“”的方式连接起来
------->代码如下:

s1 = 'abc'
s2 = '123'
for i in zip(s1,s2):
    print(''.join(i))

------->测试结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39376481/article/details/88770478
今日推荐