列表元组字典

5.1 列表概述

        列表是 Python 中的一种数据结构,可以存储不同类型的数据。

list_example = [1, 'xiaowang', 'a', [2, 'abc']]
print(list_example[0])
print(list_example[1])
print(list_example[2])
print(list_example[3])
print('*'*15)
print(list_example[3][0])
print(list_example[3][1])
print(list_example[3][1][2])

请添加图片描述

5.2 列表的循环遍历

5.2.1 for 循环遍历

list_example = [1, 'xiaowang', 'a', [2, 'abc']]
for i in list_example:
    print(i)

请添加图片描述

5.2.2 while 循环遍历列表

list_example = [1, 'xiaowang', 'a', [2, 'abc']]
length = len(list_example)
i = 0
while i < length:
    print(list_example[i])
    i += 1

请添加图片描述

5.3 列表的常见操作

5.3.1 在列表中增加元素

  1. 通过 append 方法可以向列表添加元素。
  2. 通过 expend 方法可以将另一个列表中的元素逐一添加到列表中。
  3. 通过 insert (index, object) 方法在指定位置 index 前插入元素 object。
  1. append

            使用 append 方法向列表添加的元素位于列表的末尾。

    names_list = ['xiaowang', 'xiaozhang', 'xiaohua']
    for i in names_list:
        print(i)
    print('-'*17)
    names_list.append(input('输入添加姓名:'))
    for i in names_list:
        print(i)
    

请添加图片描述

  1. extend

             使用 extend 方法将一个列表中的元素全部添加到另一个列表。

    list_one = [1, 2]
    list_two = [3, 4]
    list_one.extend(list_two)
    print(list_one)
    list_one.extend(list_two)
    print(list_one)
    

请添加图片描述

  1. insert

             使用 insert 方法可以在列表的指定位置添加元素。

    list_one = [1, 2]
    list_one.insert(1, 3)
    print(list_one)
    

请添加图片描述

5.3.2 在列表中查找元素

        查找就是看看指定元素是否存在。

in :找到返回 True, 未找到返回 False

not in :未找到返回 True, 找到返回 False

names_list = ['xiaowang', 'xiaozhang', 'xiaohua']
find_name = input("输入要查找的名称:")
if find_name in names_list:
    print(True)
else: print(False)

请添加图片描述

5.3.3 在列表中修改元素

        通过下标修改列表中元素。

names_list = ['xiaowang', 'xiaozhang', 'xiaohua']
print('-------修改前 name_list 数据-------')
for i in names_list:
    print(i, end = ' ')
names_list[0] = 'wang'

print('\n-------修改后 name_list 数据-------')
for i in names_list:
    print(i, end = ',')

请添加图片描述

5.3.4 在列表中删除元素

  1. del 根据下标删除
  2. pop 删除最后一个元素
  3. remove 根据元素的值进行移除
  1. del 语句

    删除指定下标的元素,或者直接删除整个列表。

    number_list = [1, 2, 3, 4, 5]
    del number_list[0]
    for i in number_list:
        print(i, end=' ')
    

请添加图片描述

  1. pop 方法

    删除列表最后一个元素。

    number_list = [1, 2, 3, 4, 5]
    number_list.pop()
    for i in number_list:
        print(i, end=' ')
    

请添加图片描述

  1. remove 方法

    删除列表的指定元素。

    number_list = [1, 2, 3, 4, 5]
    number_list.remove(3)
    for i in number_list:
        print(i, end=' ')
    

请添加图片描述

5.3.5 列表的排序操作

        对列表中元素重新排列,可以使用 sort 方法或者 reverse 方法实现。sort 默认从小到大,如果从小到大,可以将 sort 中reverse 参数设为 True。reverse 将列表逆序。

list_demo = [1, 9, 4, 7]
list_demo.reverse()
print(list_demo)
list_demo.sort()
print(list_demo)
list_demo.sort(reverse=True)
print(list_demo)

请添加图片描述

5.4 列表的嵌套

5.4.1 列表的嵌套

        指一个列表中的元素又是一个列表。

school_names = [
    ['清华', '北大'],
    ['南开', '天津大学', '天津师范'],
    ['山大', '中国海洋大学']
]

5.4.2 案例

        某学校共有 3 个办公室,现有 8 位老师等待工位的分配,请编写程序,完成办公室的随机分配。

设计思路:

  1. 先定义一个列表,用来存储 8 位老师姓名;
  2. 定义一个列表,这里有 3 个空的办公室,用来等待其他老师加入;
  3. 通过循环的方式把 8 位来时随机分配到 3 个办公室中;
  4. 输出每个办公室里面老师的信息。
import random
# 定义一个列表用来保存 3 个办公室
offices = [[], [], []]
# 定义一个列表用来存储 8 位老师的名字
names = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
for name in names:
    index = random.randint(0,2)
    offices[index].append(name)

i = 1
for tmp in offices:
    print("办公室 %d 的人数为:%d"%(i, len(tmp)))
    i += 1
    for name in tmp:
        print('%s'%name,end = ' ')
    print('-'*20)

请添加图片描述

5.5 元组

tuple 与 list 类似。元素不能修改元素。

  1. 访问元组

    通过下表访问,不在举例。

  2. 修改元组

    元组中的值不可修改,但可以对元组进行连接组合。

    tuple_one = (1, 7)
    tuple_two = ('xiao', 'wang')
    # 修改元组报错
    # tuple_one[0] = 1000
    # 创建一个新元组
    tuple_three = tuple_one + tuple_two
    print(tuple_three)
    

请添加图片描述

  1. 元组遍历

    tuple_demo = (1,3,5,6,8,0)
    for i in tuple_demo:
        print(i, end = ' ')
    
  2. 内置函数

    方法描述
    len(tuple)元素个数
    max(tuple)返回元组中元素最大值
    min(tuple)返回元组中元素最小值
    tuple(sep)将列表转换为元组
    tuple_one = ('Google', 'Runoob', 'Taobao')
    len_size = len(tuple_one)
    print(len_size)
    
    tuple_two = (5, 8 , 9, 2)
    print(max(tuple_two))
    print(min(tuple_two))
    
    list_demo = ['Google', 'Runoob', 'Taobao']
    tuple_three = tuple(list_demo)
    print(tuple_three)
    

请添加图片描述

5.6 字典

5.6.1 字典

info = {'name': 'xiaowang', 'id': 100, 'sex':'f', 'address': '河南省'}

        字典每个元素由两个部分组成,键、值。以 'name':'xiaowang' 为例,name 为键,xiaowang 为值。

        键是唯一的,值可以是任意类型。

5.6.2 字典的常见操作

  1. 根据键访问

    info = {'name': 'xiaowang', 'id': 100, 'sex':'f', 'address': '河南省'}
    print(info['name'])
    

请添加图片描述

        不确定键是否存在于字典中,可以使用 get 方法进行获取。其返回指定键的值,若访问的键不存在,则返回默认值。

info = {'name': 'xiaowang', 'id': 100, 'sex':'f', 'address': '河南省'}
print(info['name'])

age = info.get('age')
print(age)                  # age 键不存在返回 None
print(type(age))
age = info.get('age', 20)   # # age 键不存在返回值 20
print(age)

请添加图片描述

        如果键存在,则 type 返回 class 'str'

  1. 修改字典中的元素

    如果添加的键已存在,则会覆盖掉原来的值。

    info = {'name': 'xiaowang', 'id': 100, 'sex':'f', 'address': '河南省'}
    new_id = input('请输入新学号:')
    info['id'] = int(new_id)
    print(info['id'])
    

请添加图片描述

  1. 添加字典元素

            变量名[‘键’] = 数据 ,当键不存在时,将在字典中新建一个元素。

    info = {'name': 'xiaowang', 'sex':'f', 'address': '河南省'}
    print(info)
    new_id = input('输入id:')
    info['id'] = new_id
    print(info)
    print(info['id'])
    

请添加图片描述

  1. 删除字典元素

            del 语句删除整个字典或者字典中某个元素 clear 方法清空整个字典。

            pop(keys)

    info = {'name': 'xiaowang', 'sex':'f', 'address': '河南省'}
    print(info)
    # del
    print('删除前:%s'%info['name'])
    del info['name']
    print(info)
    # clear
    info.clear()
    print(info)
    

请添加图片描述

  1. 计算字典中键值对的个数

            len 方法

    info = {'name': 'xiaowang', 'sex':'f', 'address': '河南省'}
    lenth = len(info)
    print(lenth)
    
  2. 获取字典的键、值视图

            keys() 方法获取键视图

            values() 方法获取值视图

    info = {'name': 'xiaowang', 'sex':'f', 'address': '河南省'}
    # 键视图
    print(info.keys())
    # 值视图
    print(info.values())
    

    请添加图片描述

  3. 获取字典的元素视图

    item() 方法获取元素视图

    info = {'name': 'xiaowang', 'sex':'f', 'address': '河南省'}
    print(info.items())
    

请添加图片描述

5.6.3 字典的遍历

  1. 遍历字典的键

  2. 遍历字典的值

  3. 遍历字典的元素

  4. 遍历字典的键值对

    info = {'name': 'xiaowang', 'id': 100, 'sex':'f', 'address': '河南省'}
    # 键
    for key in info.keys():
        print(key, end=' ')
    print()
    # 值
    for value in info.values():
        print(value, end=' ')
    print()
    # 元素
    for item in info.items():
        print(item, end=' ')
    print()
    # 键值对
    for key,value in info.items():
        print("key = %s, value = %s"%(key, value), end='    ')
    
    print()
    for key,value in info.items():
        print((key, value), end='    ')
    

请添加图片描述

set 集合

        元素重复则删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值