一. 特点:列表是最长用的内置数据类型之一
1. 列表用中括号【】表示
2. 内部元素用逗号,分隔。
3.列表内部元素可支持任意数据类型
l = ['so','12','$$','A',['sad','fdw']]
二.列表的特性
1.索引
l = ['so','12','$$','A',['sad','fdw']]
print(type(l))
print(l[0])
print(l[-1])
print(l[3])
# 执行结果
so
['sad', 'fdw']
A
2.切片
l = ['so','12','$$','A',['sad','fdw']]
print(l[1:]) #从第二个元素开始
print(l[::-1]) #倒序输出
print(l[::]) #输出所有
#执行结果
['12', '$$', 'A', ['sad', 'fdw']]
[['sad', 'fdw'], 'A', '$$', '12', 'so']
['so', '12', '$$', 'A', ['sad', 'fdw']]
3.重复
l = ['so','12','$$','A',['sad','fdw']] print(l * 3 )
#执行结果
['so', '12', '$$', 'A', ['sad', 'fdw'], 'so', '12', '$$', 'A', ['sad', 'fdw'], 'so', '12', '$$', 'A', ['sad', 'fdw']]
4. 连接
l = ['so','12','$$','A',['sad','fdw']]
q = ['123','456']
print(l + q)
#执行结果
['so', '12', '$$', 'A', ['sad', 'fdw'], '123', '456']
5. 成员操作符号
l = ['so','12','$$','A',['sad','fdw']]
q = ['123','456']
print('12' in l)
print( '123' in q)
#执行结果
True
True
6. for 循环遍历
l = ['so','12','$$','A',['sad','fdw']]
#q = ['123','456']
for i in l:
print(l)
#执行结果
['so', '12', '$$', 'A', ['sad', 'fdw']]
['so', '12', '$$', 'A', ['sad', 'fdw']]
['so', '12', '$$', 'A', ['sad', 'fdw']]
['so', '12', '$$', 'A', ['sad', 'fdw']]
['so', '12', '$$', 'A', ['sad', 'fdw']]
7.嵌套列表
service2 = [['123','abc'],['456','def'],['789','ghi']]
print(service2[1][1])
print(service2[-1][1])
print(service2[:][1])
print(service2[:-1][0])
print(service2[0][:-1])
# 执行结果
def
ghi
['456', 'def']
['123', 'abc']
['123']
三. 列表的增加
append 增加
extend 拉伸
insert 插入
l = ['12','34','56','78']
print(l + ['90'])
print(l)
l.append('ab') #追加一个元素到列表中
print(l)
l.extend(['cd','ef','gh']) #追加多个元素到列表中
print(l)
l.insert(1,'00') #指定位置插入元素,
print(l)
#执行结果
['12', '34', '56', '78', '90']
['12', '34', '56', '78']
['12', '34', '56', '78', 'ab']
['12', '34', '56', '78', 'ab', 'cd', 'ef', 'gh']
['12', '00', '34', '56', '78', 'ab', 'cd', 'ef', 'gh']
四. 删除
remove 删除指定元素
del 删除关键字,从内存中删除
l = ['12','34','56','78']
l.remove('78') #删除指定元素
print(l)
del l #s删除列表
print(l) # 输出错误,列表l未定义
#执行结果
NameError: name 'l' is not defined
['12', '34', '56']
五. 列表的修改
1. 通过索引,重新赋值
l = ['12','34','56','78']
l[0] = '00' #直接通过索引赋值
print(l)
l[:1] = ['11','22'] #通过切片赋值
print(l)
#执行结果
['00', '34', '56', '78']
['11', '22', '34', '56', '78']
六. 列表的查找
l = ['12','34','56','12','78']
print(l.count('12')) #查看出现的次数
print( l.index('34')) #查看指定元素的索引值
print(l.index('12',2,5)) #查看指定元素的索引值,并限定范围
#执行结果
2
1
3
七. 列表的排序
sort 排序在按照 ascli码排列
l = ['12','34','56','12','78','00']
l.sort() #列表排序
print(l)
import random #调用随机数
random.shuffle(l) #打乱顺序
print(l)
#执行结果
['00', '12', '12', '34', '56', '78']
['78', '56', '34', '00', '12', '12']
八. 列表脚本练习
1.输入月份,判断季节
month = int(input('Month:'))
if month in [3,4,5]:
print('春季')
elif month in [6,7,8]:
print('夏季')
elif month in [9,10,11]:
print('秋季')
elif month in [12,1,2]:
print('冬季')
else:
print('输入不合法')
2.
names= ['123','877','1000']
print('+'.join(names[:-1]) + '=' + names[-1])
#执行结果
123+877=1000
脚本: 用户管理系统
1.系统里面有多个用户,用户的信息目前保存在列表里面
users = ['root','westos']
passwd = ['123','456']
2.用户登陆(判断用户登陆是否成功
1).判断用户是否存在
2).如果存在
1).判断用户密码是否正确
如果正确,登陆成功,推出循环
如果密码不正确,重新登陆,总共有三次机会登陆
3).如果用户不存在
重新登陆,总共有三次机会
"""
users = ['root','westos']
passwd = ['123','456']
print('--------用户登录系统---------')
usertime = 0
passtime = 0
while usertime < 3:
a = input('输入用户名: ')
if a in users:
while passtime < 3:
b = input('请输入密码')
if b in passwd:
print('登陆成功!')
exit()
else:
print('密码错误')
passtime += 1
else:
print('三次输入有误,请稍后再试...')
else:
print('用户名不存在,请重试.')
usertime += 1
else:
print('三次输入有误,请稍后再试.')
脚本:栈的工作
stack = []
info = """
栈操作
1.入栈
2.出栈
3.栈顶元素
4.栈的长度
5.栈是否为空
q.退出
"""
while True:
print(info)
choice = input('请输入选择:')
if choice == '1':
item = input('入栈元素:')
stack.append(item)
print('元素%s入栈成功' %item)
elif choice == '2':
#先判断栈是否为空
if not stack:
print('栈为空,不能出栈')
else:
item = stack.pop()
print('%s元素出栈成功' %item)
elif choice == '3':
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':
print('退出')
break
else:
print('请输入正确的选择')