【Python使用】嘿马python基础入门全体系教程第6篇:容器:字符串、列表、元组、字典,<1>查看元素1>【附代码文档】

举报
程序员一诺python 发表于 2024/08/27 11:25:47 2024/08/27
【摘要】 本教程的知识点为:计算机组成 计算机是由什么组成的? 1. 硬件系统: 2. 软件系统: 目标 运算符的分类 1. 算数运算符 2. 赋值运算符 3. 复合赋值运算符 判断语句和循环语句 if嵌套 1. if嵌套的格式 2. if嵌套的应用 if嵌套执行流程 容器:字符串、列表、元组、字典 字符串介绍 一. 认识字符串 1.1 字符串特征 字符串输出 容器:字符串、列表、元组、

本教程的知识点为:计算机组成 计算机是由什么组成的? 1. 硬件系统: 2. 软件系统: 目标 运算符的分类 1. 算数运算符 2. 赋值运算符 3. 复合赋值运算符 判断语句和循环语句 if嵌套 1. if嵌套的格式 2. if嵌套的应用 if嵌套执行流程 容器:字符串、列表、元组、字典 字符串介绍 一. 认识字符串 1.1 字符串特征 字符串输出 容器:字符串、列表、元组、字典 列表的相关操作 1添加元素("增"append, extend, insert)1 append extend 容器:字符串、列表、元组、字典 字典的常见操作1 1查看元素1 2修改元素2 3添加元素3 函数介绍 1什么是函数1 小总结: 函数定义和调用 1定义函数1 多函数程序的基本使用流程 1. 使用全局变量 2. 使用函数的返回值、参数 3. 函数嵌套调用 函数返回值(二) 函数应用:学生管理系统 递归函数 1什么是递归函数1 2递归函数的作用2 看阶乘的规律 文件操作介绍 1什么是文件1 2文件的作用2 文件的打开与关闭 1打开文件1 面向对象编程介绍 面向对象 1. 概述 2. 生活举例 类和对象 init()方法 说明: 问题: 有参数的__init__()方法 说明: 继承介绍以及单继承 1. 现实中的继承 2. 程序中的继承 单继承:子类只继承一个父类 说明: super()的使用 问题: 知识点: 私有权限 面向对象三大特性:封装、继承、多态 静态方法和类方法 1. 类方法 2. 静态方法 总结 异常 模块 1Python中的模块1 2import2 3from…import3 注意

完整笔记资料代码->:https://gitee.com/yinuo112/Backend/tree/master/Python/嘿马python基础入门全体系教程/note.md

感兴趣的小伙伴可以自取哦~


全套教程部分目录:


部分文件图片:

容器:字符串、列表、元组、字典


学习目标:

  1. 能够说出容器类型有什么用
  2. 能够说出常用 Python 容器的名字
  3. 能够说出切片语法的用途
  4. 能够说出容器中的索引指的是什么
  5. 能够说出如何定义一个字符串
  6. 能够说出字符串容器的特性
  7. 能够说出至少5个字符串方法名字和作用
  8. 能够使用切片语法获得指定索引区间的子串
  9. 能够说出如何使用 while 和 for 循环来遍历字符串
  10. 能够说出如何定义一个列表
  11. 能够说出列表容器和字符串容器的区别
  12. 能够说出至少5个列表方法名字和作用
  13. 能够使用切片语法获得列表指定索引区间的元素
  14. 能够说出如何使用 while 和 for 循环来遍历列表中的元素
  15. 能够说出如何定义一个列表
  16. 能够说出元组和列表的区别
  17. 能够说出如何使用 while 和 for 循环来遍历元组中的元素
  18. 能够说出元组支持哪些操作
  19. 能够说出如何定义一个字典
  20. 能够说出字典和列表的区别
  21. 能够说出如何使用 for 循环来遍历列表中的键、值和键值对
  22. 能够说出字典键和值的特点

字典的常见操作1

<1>查看元素1>

除了使用key查找数据,还可以使用get来获取数据

demo:

info = {'name':'吴彦祖','age':18}

    print(info['age']) # 获取年龄

    # print(info['sex']) # 获取不存在的key,会发生异常

    print(info.get('sex')) # 获取不存在的key,获取到空的内容,不会出现异常

<2>修改元素2>

字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改

demo:

info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}

    newId = input('请输入新的学号')

    info['id'] = int(newId)

    print('修改之后的id为%d:'%info['id'])

结果:

修改字典值

<3>添加元素3>

demo:访问不存在的元素

info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}

    print('id为:%d'%info['id'])

结果:

访问不存在的元素

如果在使用 变量名['键'] = 数据时,这个“键”在字典中,不存在,那么就会新增这个元素

demo:添加新的元素

info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}

    # print('id为:%d'%info['id'])#程序会终端运行,因为访问了不存在的键

    newId = input('请输入新的学号')

    info['id'] = newId

    print('添加之后的id为:%d'%info['id'])

结果:

请输入新的学号188
    添加之后的id为: 188

<4>删除元素4>

对字典进行删除操作,有一下几种:

  • del
  • clear()

demo:del删除指定的元素

info = {'name':'班长', 'sex':'f', 'address':'地球亚洲中国北京'}

    print('删除前,%s'%info['name'])

    del info['name']

    print('删除后,%s'%info['name'])

结果

访问不存在的元素

demo:del删除整个字典

info = {'name':'monitor', 'sex':'f', 'address':'China'}

    print('删除前,%s'%info)

    del info

    print('删除后,%s'%info)

结果

访问不存在的元素

demo:clear清空整个字典

info = {'name':'monitor', 'sex':'f', 'address':'China'}

    print('清空前,%s'%info)

    info.clear()

    print('清空后,%s'%info)

结果

访问不存在的元素

字典的常见操作2

<1>len()1>

测量字典中,键值对的个数

<2>keys2>

返回一个包含字典所有KEY的列表

<3>values3>

返回一个包含字典所有value的列表

<4>items4>

返回一个包含所有(键,值)元祖的列表

<5>has_key (Python3 已取消)5>

dict.has_key(key)如果key在字典中,返回True,否则返回False

遍历

通过for ... in ... 我们可以遍历字符串、列表、元组、字典等

注意python语法的缩进

1. 字符串遍历

>>> a_str = "hello itcast"
>>> for char in a_str:
...     print(char,end=' ')
...
h e l l o   i t c a s t

2. 列表遍历

>>> a_list = [1, 2, 3, 4, 5]
>>> for num in a_list:
...     print(num,end=' ')
...
1 2 3 4 5

3. 元组遍历

>>> a_turple = (1, 2, 3, 4, 5)
>>> for num in a_turple:
...     print(num,end=" ")
1 2 3 4 5

4. 字典遍历

<1> 遍历字典的key(键)1>

<2> 遍历字典的value(值)2>

<3> 遍历字典的项(元素)3>

<4> 遍历字典的key-value(键值对)4>

4. 想一想,如何实现带下标索引的遍历

>>> chars = ['a', 'b', 'c', 'd']
>>> i = 0
>>> for chr in chars:
...     print("%d %s"%(i, chr))
...     i += 1
...
0 a
1 b
2 c
3 d

字典的扩展

有序字典:OrderDcit

我们先看一段代码, 此代码运行在 Python3.5 版本中:

# 创建无序字典


my_dict = dict()


# 向字典中添加元素


my_dict['one'] = 1
my_dict['two'] = 2
my_dict['three'] = 3
my_dict['four'] = 4
print(my_dict)

输出结果(不固定):

{'three': 3, 'two': 2, 'four': 4, 'one': 1}

输出结果并不是按照我们创建字典、添加元素的顺序输出, 这是由于 dict 是无序的. 如果我们想最终打印输出的顺序和我们操作时的顺序保持一致, 我们就需要使用有序字典:

from collections import OrderedDict



# 创建有序字典


my_dict = OrderedDict()


# 向字典中添加元素


my_dict['one'] = 1
my_dict['two'] = 2
my_dict['three'] = 3
my_dict['four'] = 4
print(my_dict)

输出结果:

OrderedDict([('one', 1), ('two', 2), ('three', 3), ('four', 4)])

在 Python3.6 版本中, dict 字典已经经过优化, 变为有序字典. 并且字典所占用的内存占用减少了20%到25%.

第一段代码在 Python3.6 运行下, 输出结果如下:

{'one': 1, 'two': 2, 'three': 3, 'four': 4}

集合

目标

  • 创建集合
  • 集合数据的特点
  • 集合的常见操作

一. 创建集合

创建集合使用{}set(), 但是如果要创建空集合只能使用set(),因为{}用来创建空字典。

s1 = {10, 20, 30, 40, 50}
print(s1)

s2 = {10, 30, 20, 10, 30, 40, 30, 50}
print(s2)

s3 = set('abcdefg')
print(s3)

s4 = set()
print(type(s4))  # set

s5 = {}
print(type(s5))  # dict

image-20190318104620690

特点:

  1. 集合可以去掉重复数据;
  2. 集合数据是无序的,故不支持下标

二. 集合常见操作方法

2.1 增加数据

  • add()
s1 = {10, 20}
s1.add(100)
s1.add(10)
print(s1)  # {100, 10, 20}

因为集合有去重功能,所以,当向集合内追加的数据是当前集合已有数据的话,则不进行任何操作。

  • update(), 追加的数据是序列。
s1 = {10, 20}


# s1.update(100)  # 报错


s1.update([100, 200])
s1.update('abc')
print(s1)

image-20190318121424514

2.2 删除数据

  • remove(),删除集合中的指定数据,如果数据不存在则报错。
s1 = {10, 20}

s1.remove(10)
print(s1)

s1.remove(10)  # 报错
print(s1)
  • discard(),删除集合中的指定数据,如果数据不存在也不会报错。
s1 = {10, 20}

s1.discard(10)
print(s1)

s1.discard(10)
print(s1)
  • pop(),随机删除集合中的某个数据,并返回这个数据。
s1 = {10, 20, 30, 40, 50}

del_num = s1.pop()
print(del_num)
print(s1)

2.3 查找数据

  • in:判断数据在集合序列
  • not in:判断数据不在集合序列
s1 = {10, 20, 30, 40, 50}

print(10 in s1)
print(10 not in s1)

公共方法

目标

  • 运算符
  • 公共方法
  • 容器类型转换

一. 运算符

运算符 描述 支持的容器类型
+ 合并 字符串、列表、元组
* 复制 字符串、列表、元组
in 元素是否存在 字符串、列表、元组、字典
not in 元素是否不存在 字符串、列表、元组、字典

1.1 +

# 1. 字符串 


str1 = 'aa'
str2 = 'bb'
str3 = str1 + str2
print(str3)  # aabb




# 2. 列表 


list1 = [1, 2]
list2 = [10, 20]
list3 = list1 + list2
print(list3)  # [1, 2, 10, 20]



# 3. 元组 


t1 = (1, 2)
t2 = (10, 20)
t3 = t1 + t2
print(t3)  # (10, 20, 100, 200)

1.2 *

# 1. 字符串


print('-' * 10)  # ----------



# 2. 列表


list1 = ['hello']
print(list1 * 4)  # ['hello', 'hello', 'hello', 'hello']



# 3. 元组


t1 = ('world',)
print(t1 * 4)  # ('world', 'world', 'world', 'world')

1.3 in或not in

# 1. 字符串


print('a' in 'abcd')  # True
print('a' not in 'abcd')  # False



# 2. 列表


list1 = ['a', 'b', 'c', 'd']
print('a' in list1)  # True
print('a' not in list1)  # False



# 3. 元组


t1 = ('a', 'b', 'c', 'd')
print('aa' in t1)  # False
print('aa' not in t1)  # True

二. 公共方法

函数 描述
len() 计算容器中元素个数
del 或 del() 删除
max() 返回容器中元素最大值
min() 返回容器中元素最小值
range(start, end, step) 生成从start到end的数字,步长为 step,供for循环使用
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

2.1 len()

```python

1. 字符串

str1 = 'abcdefg' pri

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。