列表 字典

学习内容

  1. 列表

  2. 字典
    例子,学生信息管理,用列表,用列表嵌套,用字典

列表: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

练习用字典

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值