Python之列表

1.列表的创建

# 定义字符串
>>> name1 = 'tom'
>>> name2 = 'Tony'
>>> name3 = 'coco'
>>> name1
'tom'
>>> name2
'Tony'
>>> name3
'coco'
>>> type(name1)
<class 'str'>
# 定义列表
>>> name = ['tom','Tony','coco']
>>> name
['tom', 'Tony', 'coco']
>>> type(name)
<class 'list'>

Python之列表
1.列表里可以存储不同的数据类型

li = [1,1.2,True,'hello']
print(li)
# type 表示数据类型
print(type(li))

运行结果:
Python之列表
2.列表里也可以嵌套列表,因为列表本身也是一种数据类型

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

运行结果:
Python之列表
2.列表的6大特性

( 1).索引

# 定义列表
service = ['http','ssh','ftp']
# 打印列表中的第一个元素
print(service[0])
#  打印列表中的最后一个元素
print(service[-1])

运行结果:
Python之列表
(2).切片

# 定义列表
service = ['http','ssh','ftp']
# 打印列表中的所有元素
print(service[:])
# 打印列表中除了第一个元素(下标为0)以外的所有元素
print(service[1:])
# 打印除了最后一个元素以外的所有元素
print(service[:-1])
# 逆序打印列表
print(service[::-1])

运行结果:
Python之列表
(3).重复

# 定义列表
service = ['http','ssh','ftp']
# 将service列表打印3次
print(service * 3)

运行结果:
Python之列表
(4).连接

# 定义列表
service = ['http','ssh','ftp']
service1 = ['mysql','nginx']
# 加号表示连接
print(service + service1)

运行结果:
Python之列表
(5).成员操作符

# 定义列表
service = ['http','ssh','ftp']
service1 = ['mysql','nginx']
print('mysql' in service)
print('mysql' in service1)

运行结果:
Python之列表
(6).for循环遍历(迭代)

# 定义列表
service = ['http','ssh','ftp']
for i in service:
    print(i)

运行结果:
Python之列表
嵌套列表的索引和切片:

1.索引

# 定义嵌套列表; 列表里嵌套列表
service2 = [['http','80'],['ssh','22'],['ftp','21']]

# 嵌套列表中的索引
print(service2[0][1])
print(service2[-1][1])

运行结果:
Python之列表
2.切片

# 定义嵌套列表; 列表里嵌套列表
service2 = [['http','80'],['ssh','22'],['ftp','21']]
# 嵌套列表中的切片
print(service2[:-1][0])
print(service2[:][0])
print(service2[1][:-1])

运行结果:
Python之列表
3.列表的增删改查

(1).列表的增加

1.加号相当于连接

service = ['http','ssh','ftp']
# 加号相当于连接
print(service + ['firewalld'])

运行结果:
Python之列表
2.append追加一个元素,默认在列表末尾追加

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

运行结果:
Python之列表
3.extend追加多个元素,默认在列表末尾追加

service = ['http','ssh','ftp']
# extend:拉伸,追加多个元素到列表中
# service.extend(['firewalld','nginx'])
# print(service)

运行结果:
Python之列表
4.insert在指定索引位置处插入元素

service = ['http','ssh','ftp']
# insert:在指定索引位置处插入元素
service.insert(1,'samba')
print(service)

运行结果:
Python之列表
(2).列表的删除

# 定义列表
>>> service = ['http','ssh','ftp']
# 删除最后一个元素
>>> service.pop()
'ftp'
>>> service
['http', 'ssh']
>>> service.pop()
'ssh'
>>> service
['http']
>>> service.pop()
'http'
>>> service
[]

Python之列表
1.pop删除最后一个元素

service = ['http','ssh','ftp']
#  pop:删除最后一个元素
a = service.pop()
print(a)
print(service)

运行结果:
Python之列表2. remove删除指定元素

service = ['http','ssh','ftp']
# remove:删除指定元素
a = service.remove('ssh')
print(a)
print(service)

运行结果:
Python之列表
3.del从内存中删除

service = ['http','ssh','ftp']
# del:从内存中删除
del service
print(service)

运行结果:
Python之列表
(3).列表的修改

1.通过索引,重新赋值

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

运行结果:
Python之列表2.通过切片,重新赋值

service = ['http','ssh','ftp']
print(service[:2])
service[:2] = ['samba','nginx']
print(service)

Python之列表(4).列表的查看

1.count查看指定元素出现的次数

service = ['ftp','http','ssh','ftp']
# count:查看指定元素出现的次数
print(service.count('ftp'))

运行结果:
Python之列表
2.index查看指定元素的索引值

# 查看指定元素的索引值
print(service.index('ssh'))
# 指定索引范围,查看指定元素的索引值
print(service.index('ftp',0,3))

运行结果:
Python之列表
4.列表的排序

# 定义列表
>>> names = ['alice' ,'bob','harry','Borry']
# 1.默认按ASC码排序
>>> names.sort()
>>> names
['Borry', 'alice', 'bob', 'harry']
# 2.按key值排序
>>> names.sort(key=str.upper)
>>> names
['alice', 'bob', 'Borry', 'harry']

Python之列表
1.sort() 默认按首字母ASCII码从小到大排序

service = ['ftp','ssh','http','ftp']
# sort:按首字母ASCII码排序(从大到小排序; A:65 a:97)
service.sort()
print(service)

运行结果:
Python之列表
2.sort(key=…)按key值从小到大排序

service = ['ftp','ssh','http','ftp']
# 按key值排序(从大到小排序)
service.sort(key=str.upper)
print(service)

运行结果:
Python之列表
3.shuffle将原有的列表顺序打乱

import random

# list表示强制转换数据类型为:列表
li = list(range(10))
print(li)

# shuffle:将原有的列表顺序打乱
random.shuffle(li)
print(li)

运行结果:
Python之列表
5.列表的综合练习

(1).判断季节

需求:

用户输入月份,判断这个月是哪个季节
 
分析:
3,4,5月----春季  6,7,8----夏季   9,10,11---秋季  12,1,2----冬季 

代码:

# 接收用户输入的月份
month = int(input('month:'))

# 定义列表
spring = [3,4,5]
summer = [6,7,8]
autom = [9,10,11]
winter = [12,1,2]

# 判断输入的月份属于哪个季节
# 列表的特性:成员操作符
if month in spring:
    print('%s月是春天' %(month))
elif month in summer:
    print('%s月是夏天' %(month))
elif month in autom:
    print('%s月是秋天' %(month))
elif month in winter:
    print('%s月是冬天' % (month))
else:
    print('请输入正确的月份')

运行结果:
Python之列表
(2)按要求重组列表元素

需求:

假定有下面的列表:
    names = ['fentiao','fendai','fensi','apple']
    输出结果为:'I have fentiao, fendai, fensi and apple.'

代码:

# 定义列表
names = ['fentiao','fendai','fensi','apple']

# + 和 join 都表示连接,(join可以指定分隔符连接);
# 列表的 索引 和 切片 都相当于 分离
print('I have ' + ','.join(names[:3]) + ' and ' + (names[3]))

运行结果:
Python之列表
(3).模拟栈的工作原理

需求:

栈的工作原理
    入栈
    出栈
    查看栈顶元素
    栈的长度
    栈是否为空

注意:空栈不能出栈,且此时无栈顶元素

代码:

# 定义一个空列表,用来表示栈
stack = []

# 定义操作选项的变量
info = """
        栈操作
    1.入栈
    2.出栈
    3.栈顶元素
    4.栈的长度
    5.栈是否为空
    q.退出
"""
# 无限循环
while True:
    # 输出操作选项信息
    print(info)
    choice = input('请输入选择:')
    if choice == '1':
        print('入栈'.center(50,'*'))
        # 接收入栈元素
        item = input('入栈元素:')
        # append:添加元素到列表中
        stack.append(item)
        print('元素%s入栈成功' % item)
    elif choice == '2':
        if len(stack) == 0:
            print('栈为空,无法出栈')
        else:
            print('出栈'.center(50, '*'))
            # pop:删除列表中的最后一个元素
            item = stack.pop()
            print('%s元素出栈成功' % item)
    elif choice == '3':
        # len:列表长度
        if len(stack) == 0:
            print('栈为空,无栈顶元素')
        else:
            print('栈顶元素为%s' % stack[-1])
    elif choice == '4':
        print('栈的长度为%s' % len(stack))
    elif choice == '5':
        if len(stack) == 0:
            print('栈为空')
        else:
            print('栈不为空')
    elif choice == 'q':
        break
    else:
        print('请输入正确的选择')

运行结果:
Python之列表
Python之列表
Python之列表
Python之列表
Python之列表
Python之列表
(4).后台管理员管理前台会员信息系统

需求:

后台管理员管理前台会员信息系统:

1. 后台管理员只有一个用户: admin, 密码: admin
2. 当管理员登陆成功后, 可以管理前台会员信息.
3. 会员信息管理包含:
      添加会员信息
      删除会员信息
      查看会员信息
      退出

- 添加用户:
    1). 判断用户是否存在?
    2).  如果存在, 报错;
    3).  如果不存在,添加用户名和密码分别到列表中;

- 删除用户
    1). 判断用户名是否存在
    2). 如果存在,删除;
    3). 如果不存在, 报错;

代码:

print('管理员登陆界面'.center(50,'*'))

# 初始会员信息
users = ['westos','linux']
passwds = ['123','234']

# 接收用户输入的用户名和密码
inuser = input("用户名:")
inpasswd = input("密码:")

if inuser == 'admin':
    if inpasswd == 'admin':
        print("管理员%s登陆成功" % (inuser))
        while True:
            print("""
            **********操作目录**********
            1.添加会员信息
            2.删除会员信息
            3.查看会员信息
            4.退出
            """)
            option = input('请输入你想执行的操作:')
            if option == '1':
                print('添加会员信息'.center(50,'*'))
                adduser = input('用户名:')
                addpasswd = input('密码:')
                if adduser in users:
                    print('添加失败,该会员信息已经存在!')
                else:
                    users.append(adduser)
                    passwds.append(addpasswd)
                    print('添加信息成功!')
            elif option == '2':
                print('删除会员信息'.center(50,'*'))
                deluser = input('用户名:')
                if deluser not in users:
                    print('删除失败,该会员信息不存在!')
                else:
                    # 找出想删除的用户对应的索引值
                    delindex = users.index(deluser)
                    # 删除用户,remove表示删除列表中的元素
                    users.remove(deluser)
                    # 按照索引值删除密码,pop也表示删除列表中的元素,区别在于,它可以按索引值来删除
                    passwds.pop(delindex)
                    print('删除信息成功!')
            elif option == '3':
                print('查看会员信息'.center(50,'*'))
                # 记录users列表的长度(即列表中元素的个数)
                count = len(users)
                for i in range(0,count):
                    print('用户名: %s   密码: %s' %(users[i],passwds[i]))
            elif option == '4':
                exit()
            else:
                print('请输入正确的操作指令')
    else:
        print("%s登陆失败: 密码错误!" % (inuser))
else:
    print("用户%s不存在" % (inuser))

运行结果:
Python之列表
Python之列表
Python之列表
Python之列表
Python之列表
Python之列表
Python之列表
Python之列表