学习内容
列表
字典
例子,学生信息管理,用列表,用列表嵌套,用字典
列表:python内置的一种数据类型。容器类,
列表中存数的数据是有顺序的,可以存放数字,字符串,对象
声明一个列表,列表中如果有多个元素,每个元素之间用,逗号隔开
list_1 = [1,'hello',True,3.1415926,'world']
1. 查询
用索引来访问list中每一个位置的元素,要记住索引是从0开始的
当索引超出范围时会报错
IndexError:list index out of range 列表索引越界
#支持负值操作,负值从后往前取值,最后一个元素的索引为-1
pi = list_1[4]
print pi
print list_1
#pop()函数,从列表中取出数据,取出之后列表中没有了
pi = list_1.pop(4)
print pi
print list_1
2. 添加
append表尾追加数据
list_1.append('zhangsan')
print list_1
insert指定索引,插入数据
list_1.insert(2,False)
print list_1
extend扩展列表,将另外一个列表中的数据全部添加到该列表
list_2 = [1,2,3]
list_1.extend(list_2)
print list_1
3. 修改
根据索引修改列表中的数据
list_1[4] = 3.14
print list_1
4. 删除
pop()函数,删除指定索引位置的元素
若pop()不填写索引,默认取出最后一个元素
list_1.pop()
print list_1
del关键字,删除指定索引位置的元素
del list_1[2]
print list_1
remove()函数,移除指定元素,
移除第一个匹配到的元素
list_1.remove('zhangsan')
print list_1
取出列表中所有数据
#for 循环,指定循环的次数,遍历列表
for x in range(0,len(list_1)):
#把x的值作为索引,从列表中取出数据
content = list_1[x]
print content
删除列表中所有的元素
while len(list_1):
list_1.pop()
print list_1
字典
字典中存储的数据是无序的;
以key:value键值模式存储数据的,可以存储任何类型的数据;
key必须是唯一的;
字典中的key必须是不变的,一般推荐使用字符串/数字作为字典中的key;
#声明字典
dict_1 = {'name':'zhangsan','age':22,'phone':'110'}
print dict_1
基本操作
#若字典中有这个key,做修改的操作;若没有这个key,做添加的操作
#添加数据
dict_1['sex'] = 'male'
print dict_1
dict_1['adress'] = 'china'
#修改数据
dict_1['name'] = 'list'
print dict_1
# 查询数据
# 通过key取出key对应的值;;get()函数根据key取值,如果key不存在,可以指定获取一个默认值
sex = dict_1['sex']
name = dict_1.get('qwer','124566')
print name
# 删除字典中的数据
del dict_1['name']
print dict_1
# clear()函数,清空字典中的所有键值
# dict_1.clear()
介绍字典中几个重要的函数
# keys()获取字典中所有的key,返回的是一个列表
keys = dict_1.keys()
print keys
# values()获取字典中所有的值,返回的是一个列表
values = dict_1.values()
print values
# items() 获取字典中所有的key和value,返回的是一个列表中嵌套的小元组
[('name','jj'),('age','16'),('sex','male')]
items = dict_1.items()
print items
# has_key判断字典中是否拥有某个key,返回时布尔类型的数据
# 如果不存在这个key,返回False,如果存在返回True
is_have = dict_1.has_key('phone')
print is_have
小练习
学员信息管理
# coding:utf-8
'''
有一个存放所有学员信息的列表student_list
1.有五个功能:
1.添加学员
1.1输入一个学员的姓名,添加到所有学生列表中
2.查询学员
2.1输出所有学员的信息,学员的序号和学员的姓名
3.修改学员
3.1展示所有学员信息(序号,姓名)
3.2选择学院的序号,修改姓名
4.删除学员
4.1展示学员信息(序号、姓名,根据选择的序号删除学员)
4.2删除所有学员
5.退出程序
'''
# 声明一个用来存放所有学员信息的列表student_list
student_list = []
while True:
print '********学员管理系统V 1.0*********'
print '1、********添加学员********'
print '2、********查询学员********'
print '3、********修改学员********'
print '4、********删除学员********'
print '0、********退出程序********'
print '***************************'
# 选择操作
selc_num = input('请选择您的操作:')
#判断选择的数字是否符合要求
while selc_num not in range(0,5):
selc_num = input('没有该选项,请重选:')
#根据选择的数字,做出对应的操作
if selc_num == 1:
name = raw_input('请输入学员姓名:')
student_list.append(name)
elif selc_num == 2:
for x in range (0,len(student_list)):
name = student_list[x]
print '序号',x, '姓名', name
elif selc_num == 3:
# 1.展示所有学员序号和姓名
for x in range(0, len(student_list)):
name = student_list[x]
print '序号', x, '姓名', name
# 2.选择要修改的序号
index = input('请输入您要修改学员序号:')
# 3.判断选择的数字是否符合要求
while index not in range(0, len(student_list)):
index = input('没有该序号,请重选:')
# 4.字符串的拼接,格式化
old_name = student_list[index]
# %s 占位符
name = raw_input('请输入您修改后的姓名(%s):'%old_name)
# 5.修改
student_list[index] = name
print '修改成功!'
elif selc_num == 4:
print '1.根据序号删除学员信息'
print '2.删除所有学员信息'
sel_num = input('请输入您的选择:')
while sel_num not in range(1, 3):
sel_num = input('没有此选项,请重选:')
if sel_num == 1:
# 1.学员信息展示
for x in range(0, len(student_list)):
name = student_list[x]
print '序号:%s 姓名:%s'%(x, name)
index = input('请输入要删除的序号:')
while index not in range(0, len(student_list)):
index = input('没有该序号,请重选:')
# 取出要删除的姓名
old_name = student_list[index]
rs = raw_input('您确定要删除:%s?y/n:'%old_name)
if rs == 'y':
del student_list[index]
else:
# 做删除数据的提醒
rs = raw_input('您确定要清除所有数据?y/n:')
if rs == 'y':
while len(student_list):
student_list.pop()
else:
print '成功退出'
break
嵌套列表
#coding:utf-8
student_list = []
while True:
print '********学员管理系统V 2.0*********'
print '1、********添加学员********'
print '2、********查询学员********'
print '3、********修改学员********'
print '4、********删除学员********'
print '0、********退出程序********'
print '***************************'
# 选择操作
selc_num = input('请选择您的操作:')
# 判断选择的数字是否符合要求
while selc_num not in range(0,5):
selc_num = input('没有该选项,请重选:')
# 根据选择的数字,做出对应的操作
if selc_num == 1:
# 1.输入学员信息
name = raw_input('请输入学员姓名')
age = raw_input('请输入学员年龄')
phone = raw_input('请输入学员手机')
# 2.组装一个完整信息的小列表
person = [name, age, phone]
# 3.将小列表添加到大列表中
student_list.append(person)
elif selc_num == 2:
for x in range(0, len(student_list)):
# 根据x的值,取出对应的小列表
person = student_list[x]
# 取出姓名,年龄,电话
name = person[0]
age = person[1]
phone = person[2]
print '序号:%s 姓名:%s 年龄:%s 电话:%s'%(x,name,age,phone)
elif selc_num == 3:
# 1.输出信息
for x in range(0,len(student_list)):
# 根据x的值,取出对应的小列表
person = student_list[x]
print '序号:%s 姓名:%s 年龄:%s 电话:%s'%(x,person[0],person[1],person[2])
# 2.选择序号
index = input('请输入要修改的序号:')
while index not in range(0,len(student_list)):
index = input('序号无效,请选择:')
# 3.根据序号取出小列表
person = student_list[index]
new_name = raw_input('请输入修改后的名字(%s):'%person[0])
new_age = raw_input('请输入修改后的年龄(%s):' % person[1])
new_phone = raw_input('请输入修改后的电话(%s):' % person[2])
# 4.修改数据
person[0] = new_name
person[1] = new_age
person[2] = new_phone
print '修改成功!'
elif selc_num == 4:
print '1.删除指定学员信息'
print '2.删除所有学员信息'
selc_num = input('请输入您的选择:')
while selc_num not in range(1, 3):
selc_num = input('没有此选项,请重选:')
if selc_num == 1:
# 1.学员信息展示
for x in range(0, len(student_list)):
# 根据x的值,取出对应的小列表
person = student_list[x]
print '序号:%s 姓名:%s 年龄:%s 电话:%s' % (x, person[0], person[1], person[2])
# 2.输入要删除的序号
index = input('请输入要删除的序号:')
while index not in range(0, len(student_list)):
index = input('没有该序号,请重选:')
# 3.取出要删除的姓名
old_name = student_list[index][0]
rs = raw_input('您确定要删除:%s?y/n:' % old_name)
if rs == 'y':
del student_list[index]
else:
# 做删除数据的提醒
rs = raw_input('您确定要清除所有数据?y/n:')
if rs == 'y':
while len(student_list):
student_list.pop()
else:
print '成功退出'
break
练习用字典