一 元组

1.1 元组是不可变的列表

元素可以是任何类型的数据

tuple1 = (10, 20, 30, 'abc', 10*30)
print(tuple1)

2.2 列表获取元素的方法都适用于元组

tuple2 = ('咪咪', '任旧康', '张一山', '刘亦菲')
# 获取单个元素
print(tuple2[1])
print(tuple2[-1])
  • 遍历
for i in tuple2:print(i)for index, item in enumerate(tuple2):print(index, item)
  • 切片
print(tuple2[::-1])

1.3 列表相关操作都是用于元组

print((1, 2, 3) + ('a', 'b'))
print((1, 2, 3) * 3)
print((1, 2, 3) == (2, 3, 4))
print(100 in (111, 200, 100))
print(tuple('abc'))
  • 相关方法
nums = (10, 20, 30, 43, 2, 34, 10)
print(nums.count(10))
print(nums.index(20))

1.4 元组特有的一些方法和功能

  1. 只有一个元素的元组:()中唯一的元素后面需要添加逗号
list1 = [1]
print(type(list1))  # <class 'list'>tuple1 = (1)
print(type(tuple1))  # <class 'int'>tuple2 = (1,)
print(type(tuple2))  # <class 'tuple'>
  1. 直接多个数据用用逗号隔开表示的也是一个元组(元组的括号在没有歧义的时候可以省略)
tuple3 = (100, 200, 300)
tuple4 = 100, 200, 300
print(type(tuple4), tuple4)
  1. 获取元素的时候可以通过让变量的个数和元组中元素的歌数保持一致,来分别获取元组中每个元素的值
point = (100, 200)
x, y = point
print(x, y)
  1. 让变量的个数少于元组中元素的个数,并且在一个变量前加*。
    先让没有号的变量一次获取元组中的元素,然后把剩下的所有元素作为一个列表返回
stu = ('小明', '30', '男', 89, 90, 44, 100)
names, age, gender, *scores = stu
print(names, age, gender, *scores)a, *b, c, d = stu
print(a)
print(b)
print(c)
print(d)

二 字典

2.1 引出字典

问题:用列表同时保存多个意义不同的数据的时候,代码的可读性很低

stu = ['小明', '20', '男', '15182639450', '13689742581', 56, 170, 89]

解决:用字典保存多个意义不同的数据

stu = {'name': '小明','age': 20,'sex': '男','tel': '15182639450','m_tel': '13689742581','weight': 56,'height': 170,'score': 80
}
print(stu['name'])
print(stu['sex'])
print(stu['score'])

2.2 什么是字典

字典是容器数据类型的数据,将{}作为容器的标志,里面多个元素用逗号隔开(其中与那苏必须是键值对):
{键1:值1, 键2:值2, 键3:值3, …}

2.3 字典的特点

字典是可变的(支持增删改);字典是无序的(不支持下标操作)

2.4.字典的元素:键必须是不可变的,唯一的;值可以是任何类型的数据,并且可以重复

dict1 = {10: 100,'abc': 300
}
print(dict1)

练习:定义一个字典,保留一条狗的信息,包括名字、品种、颜色、年龄。

dict_dog = {'姓名': '馒头','品种': '藏獒','颜色': '黑色','叫声': '┗|`O′|┛ 嗷~~','年龄': 20
}
print(dict_dog)

2.4.1字典元素的增删改查

  1. 查 - 获取字典的值
  • 获取单个值
    ① 字典[key] - 获取字典中指定key对应的值(如果key不存在,会报错)
    ② 字典.get(key) - 获取字典中指定key对应的值(如果key不存在,不会报错,返回None)
    字典.get(key,默认值) - 获取字典中指定key对应的值(如果key不存在,不会报错,返回默认值)
movies = {'name': '战狼','director': '吴京','actor': '吴京','release_time': '2015','kind': '动作/战争/军事'
}
movies1 = {'name': '沉默的羔羊','director': '乔纳森·戴米','actor': '莱蒂·福斯特','release_time': '1991','kind': '惊悚'
}
print(movies['name'])
print(movies1['release_time'])
print(movies1.get('score'))
print(movies1.get('color', 'yellow'))
print(movies1.get('name'))
print(movies.get('kind'))
  • 遍历字典
    ①:
    for 变量 in 字典: - 变量在循环体中得到是字典的key
    循环体
for x in movies1:print(x, movies1[x])

②:
for 变量1, 变量2 in 字典.items(): - 同时获取字典中的key和key对应的值
循环体

for x, y in movies.items():print(x, y)
  1. 增/改 - 添加键值对/修改键值对的值
    ①:
    字典[key] = 值 - 当key不存在,就在最后添加键值对;当key存在的时候就是修改key对应的值
print('========================================')
dict_subject = {'name': 'python','score': 3,'class_hour': 20,'direction': ['数据分析', 'web后端', '自动化运维', '爬虫', '自动化运维']
}
dict_subject['teacher'] = '老任'
print(dict_subject)

  1. ①:
    del 字典[key] - 删除字典指定key对应的键值对
del dict_subject['class_hour']
print(dict_subject)

②:
字典.pop(key) - 取出字典中指定key对应的值

direction = dict_subject.pop('direction')
print(direction)

2.5 字典相关操作

  1. 字典不支持加法、乘法和比较大小的运算
  2. 判断相等
print({'a': 10, 'b': 20} == {'b': 20, 'a': 10})  # True
  1. is - 判断两个数据的地址是否相等
a = {'a': 10}
b = {'a': 10}
c = a
print(a == b)  # True
print(a is b)  # False
print(a is c)  # True
  1. in 和not in
    key in 字典 - 判断字典中是否有指定的key
dict1 = {'a': 10, 'b': 20, 'c': 30}
print(10 in dict1)  # False
print('b' in dict1)  #True
  1. 相关函数:len、dict
    ① len(字典) - 获取字典中键值对的个数
print(len(dict1))

② dict(数据) - 将其他数据转换成字典(数据的要求:1.序列 2.序列中的元素还是序列 3内部的序列有且只有两个元素,第一个元素不可变)

list1 = ['ab', (10, 20), ['name', '张三']]
print(dict(list1))
  1. 将字典转换成其他数据
  • 将字典转换成列表/元组 - 将字典的key作为列表/元组的元素
stu = {'name': '小明', 'age': 18, 'score': 100}
print(list(stu))
print(tuple(stu))
  • 将字典转换成字符串
print(str(stu))
  • 将字典转换成布尔
print(bool({}))
print(bool(stu))
  1. 相关方法
  • 字典.clear()
  • 字典.copy()
stu = {'name': '小明', 'age': 18, 'score': 100}
stu2 = stu
stu2['name'] = '小花'
print(stu2)
  • dict.fromkeys(序列, 默认值=None) - 创建一个新的字典,序列中所有的元素作为新字典的key,默认值是所有key对应的值
new_dict = dict.fromkeys('abs')
print(new_dict)
  • 字典.items()、字典.keys()、字典.values()
stu = {'name': '小明', 'age': 18, 'score': 100}
print(stu.items())
print(stu.keys())
print(stu.values())
  • 字典.setdefault(key, value) - 在字典中添加键值对(如果指定的可以已在原字典中存在,就不会改变原来的值)
stu = {'name': '小明', 'age': 18, 'score': 100}
stu.setdefault('weight', 50)
print(stu)
  • 字典1.update(字典2) - 将字典2中的键值对添加到字典1中
stu = {'name': '小明', 'age': 18, 'score': 100}
stu2 = {'a': 10, 'b': 20}
stu.update(stu2)
print(stu)

day07-python字典相关推荐

  1. Python 字典(Dictionary) get()方法

    Python 字典(Dictionary) get()方法 描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: ...

  2. python 字典 的pop 方法

    python 字典pop 方法的作用: 字典 pop() 方法删除字典给定键 key 及对应的值,返回值为被删除的值 字典pop 的语法: pop(key[,default]) demo 练习字典po ...

  3. python字典一键多值_python字典中如何一键多值的写入?

    python字典中如何一键多值的写入? python字典中一键多值写入的方法: 1.循环写入字典key.value.删除指定的键值对: 原文本'jp_url.txt'每行元素以逗号分隔:host_ke ...

  4. python字典{:4}_Python字典101:详细的视觉介绍

    python字典{:>4} 欢迎 (Welcome) In this article, you will learn how to work with Python dictionaries, ...

  5. Python 字典(Dictionary)

    Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在 ...

  6. python字典操作添加_Python字典常见操作实例小结【定义、添加、删除、遍历】

    本文实例总结了python字典常见操作.分享给大家供大家参考,具体如下: 简单的字典: 字典就是键值对key-value组合. #字典 键值对组合 alien_0 ={'color':'green', ...

  7. python 字典代码_Python 字典(Dictionary)

    Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包 ...

  8. python字典(dict)+常用方法操作+列表、元组、集合、字典的互相转换

    python字典(dict)+常用方法操作+列表.元组.集合.字典的互相转换 字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据. 为了保存具有映射关系的数据,Python ...

  9. python字典之defaultdict详解

    python字典之defaultdict详解 defaultdict为你的字典设定一个默认值或者默认值的数据类型: defaultdict接受一个工厂函数作为参数,如下来构造: dict =defau ...

  10. python字典练习题

    python字典练习题 写代码:有如下字典按照要求实现每一个功能dict = {"k1":"v1","k2":"v2", ...

最新文章

  1. opengl 设置每个点的颜色_OpenGL学习笔记(四)着色器
  2. docker-engine安装好了,下一步该做什么?
  3. mybatis入门(一)之基础安装
  4. 微软IIS6漏洞:服务器敏感信息易被窃
  5. 【PyTorch】lr_scheduler.StepLR==>调整学习率的方法
  6. javascript的jQuery库小结(1)
  7. js与c语言效率_2020年为什么要精通C语言?是什么造就封神之路?不愧是最强编程语言...
  8. 【DotNet加密方式解析】-- 好文收藏
  9. bootstrap展示导入的图片_BootstrapFileInput 图片上传插件 详解
  10. ScrollView常用属性汇总
  11. python- 小猫钓鱼纸牌游戏
  12. raspberry 防火墙_用Raspberry Pi对您的家庭网络进行防火墙
  13. matlab 命令文件转成函数文件,科学网—[转载]利用MATLAB将nc文件转成tif - 张乐乐的博文...
  14. 【CAD.Net】第四课:添加实体类和符号表到图纸
  15. Ant Design删除操作弹出对话框
  16. Android开发之最新Android Studio推送代码到最新GitHub教程 | Android Studio绑定GitHub | AS令牌登录GitHub | 创建GitHub令牌
  17. 基于Javaweb实现的人脸识别考勤系统
  18. 分享一个网易新闻的api接口
  19. 指尖江湖李忘生鸿蒙初开,剑网3指尖江湖李忘生怎么玩 使用攻略
  20. canvas——绘制图片——动图制作

热门文章

  1. 如何添加旺旺客户,淘宝店铺左侧代码
  2. 计算机科学与技术补中益气丸的成分,补中益气丸的成分是什么
  3. 微信的转账记录删除了还能恢复吗?2个办法教你找回
  4. 最新款iPad,真香!!
  5. SRS低延时配置分析
  6. Netflix Media Database - 起源和数据模型
  7. meta20 无法安装 google play_不ROOT不刷机,小米手机如何安装谷歌 GMS 三件套
  8. 标准成本和移动平均价的误区
  9. 类型的Overflow与underflow
  10. 是什么意思怎么读_知识丨南无怎么读?是什么意思?