list
定义列表
li = [ ] ,不写内容表示空列表可以用type来查看
定义列表里的值:li = [1,1.1,True,‘abc’] ,列表里的值不能直接写字母,需要用’’
列表中的可以嵌套列表
li = [1,1.1,True,'abc',[1,2,3,4,5]]
print(li)
print(type(li))
列表的特性
index索引
li = [1,1.1,True,'abc']
print(li[0]) #显示索引值为0的值
print(li[1:]) #显示索引值1之后的,包括1
print(li[:1]) #显示索引值1之前的,不包括1
print(li[::-1]) #倒叙显示
print(li[-1]) #显示最后一个
cut切片
repeat重复
link链接
成员操作符
in 和 not in
for循环
嵌套列表索引
service = [['http','80'],['ssh','22'],['ftp','21']] #定义嵌套列表
print(service[0][1]) #打印service列表中第一个项里的第二个值
print(service[:-1][-1]) #打印service列表中除最后一个外的项的倒数第一个
练习
假定有下面这样的列表:
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])
列表里的添加
添加
追加append 一次只能添加一个
拉伸extend 可以一次添加多个
插入insert
列表里的删除
弹出.pop()
弹出的值是不会被完全删除掉的,还会存在于内存中消耗资源,所以我们可以给弹出的元素定义变量,在后面需要时再使用,用法如:a = services.pop(),括号里不加值默认是弹出最后一个
指定需要弹出的值,用index值指定,如:services.pop(0),弹出列表里的第一个值
移除.remove()
移除是会从内存中删除信息,如果需要移除指定的值,可以在括号中加入,用法如:services.remove(‘httpd’)
可以看到使用remove后,打印定义的变量a结果为None
删除
删除是直接列表,用法入:del services
删除后再打印列表,会出现报错列表未被定义
列表里的更改
首先定义列表:service = [‘http’,‘ssh’,‘ftp’]
更改的方式可以通过:索引、切片来进行操作
索引方式更改
直接重新指定列表里的值
切片方式更改
如:services[1:] = [‘samba’,‘firewalld’],替换除第一个值外的所有值
列表中的查找
查看列表中元素的个数
查看列表中元素的索引值
查看索引值,如果一个元素多次出现查看到的索引值是第一次出现的值
在指定范围查看指定元素的索引值
这里我们指定的范围是索引3-4,列表的长度是3,而ssh在2和3都有出现,所以在3-4范围查看到的值就是3,如果在0-3范围查看,结果就会是2
列表中的排序
.sort() 表示对列表里的元素进行排序
并且我们可以看到,对于排序的元素是先排序字符、数字,然后是大写字母、小写字母
对于字母可以进行指定是按大写或小写进行排序
name.sort(key=str.lower) ,按小写排序
name.sort(key=str.upper) ,按大写排序
列表的随机排序
正常我们打印range(10)的序列,结果是按顺序来展示的,如果需要将序列打乱进行随机排列,则需要使用随机数进行操作
li = list(range(10))
print(li)
import random #导入随机数模块
random.shuffle(li) #进行随机排列
print(li)
练习1:
1.系统里面有多个用户,用户的信息目前保存在列表里面
users = [‘root’,‘westos’]
passwd = [‘123’,‘456’]
2.用户登陆(判断用户登陆是否成功
1).判断用户是否存在
2).如果存在
1).判断用户密码是否正确
如果正确,登陆成功,退出循环
如果密码不正确,重新登陆,总共有三次机会登陆
3).如果用户不存在
重新登陆,总共有三次机会
users = ['root', 'westos']
passwds = ['123', '456']
trycount = 0
while trycount < 3:
inuser = input('Username:')
inpasswd = input('Password:')
trycount += 1
if inuser in users:
index = users.index(inuser)
passwd = passwds[index]
if inpasswd == passwd:
print('%s login success!' %inuser)
break
else:
print('%s login failed: password not correct!' %inuser)
else:
print('User %s not exist!' %inuser)
else:
print('no more chance')
练习2:
系统里面有多个用户,用户的信息目前保存在列表里面
users = [‘root’,‘westos’]
passwd = [‘123’,‘456’]
- 后台管理员只有一个用户: admin, 密码: admin
- 当管理员登陆成功后, 可以管理前台会员信息.
- 会员信息管理包含:
添加会员信息
删除会员信息
查看会员信息
退出
“”"
print('管理员登陆'.center(50,'*'))
inuser = input('Username:')
inpasswd = input('Password:')
users = ['root', 'westos']
passwds = ['123', '456']
if inuser == 'admin' and inpasswd == 'admin':
print('管理员登陆成功!')
print('会员信息管理'.center(50,'*'))
while True:
print("""
目录
1. 添加会员信息
2. 删除会员信息
3. 查看会员信息
4. 退出
""")
choice = input('Please input your choice:')
if choice == '1':
UserAdd = input('UserNmae:')
if len(UserAdd) != 0 and UserAdd not in users:
PassAdd = input('Password:')
users.append(UserAdd)
passwds.append(PassAdd)
elif UserAdd in users:
print('%s is already exist' %UserAdd)
else:
print('Please check UserName')
elif choice == '2':
UserDel = input('Userdel:')
if UserDel in users:
index_user = users.index(UserDel)
PasswdDel = passwds[index_user]
users.remove(UserDel)
passwds.remove(PasswdDel)
else:
print('Please check UserName')
elif choice == '3':
print(users,passwds)
# print(passwds)
elif choice == '4':
exit()
else:
print('Please check your input!')
else:
print('管理员登陆失败!')