Python学习第三天--数据类型--字典

一:介绍
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。
列表是有序的对象集合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用"{ }"标识。
字典由索引(key)和它对应的值value组成。
字典也被称作关联数组或哈希表。
字典的特点:
1、 key是唯一的,因为字典数据类型数据的检索是通过key来完成
2、 如果key不唯一,会使用最后一次的key:value键值对来替换之前的同名key:value键值对
3、 key的数据类型必须是不可变数据类型
4、 value的数据类型随意

空字典的创建:

# 空字典的创建
dict1 = {}

普通字典的创建

# 普通字典
dict2 = {'name': '吴', 'age': 18, 'sex': '男'}

使用工厂方法dict()创建

# 使用工厂方法dict()创建字典:
adict1 = dict()
adict2 = dict((['x',1],['y',2]))
# 使用dict()函数创建字典,列表包元组,元组里只能有一对值,将元组里面这一组值作为key:value
dict1 = dict([(12, 'a'), (13, 'b')])
# print(dict1)
# 使用dict()函数创建字典,元组包列表,列表里只能有一对值,将列表里面这一组值作为key:value
dict1 = dict(([12, 'a'], [13, 'b']))
# print(dict1)
# 使用dict()函数创建字典,直接key, value
dict1 = dict(key1='value1', key2='value2')
# print(dict1)

关键字创建

# 关键字参数创建字典,如:
adict3 = dict(name='allen', age='40')

使用fromkeys()创建字典,多种多样

# 字符串
str1 = 'creat'
dict3 = dict.fromkeys(str1, 'value2')
# 元组
tuple1 = (1, 'a', 'b', 2)
dict3 = dict.fromkeys(tuple1, 'value2')
# 集合
set1 = set('key1', 'value1', 4)
dict3 = dict.fromkeys(set1, 'value2')
# 列表
list1 = ['key1', 'key2', 12] # 因为列表里面的元素也是字符串,属于不可变类型
dict3 = dict.fromkeys(list1, 'value2')
print(dict3)

二:
字典两个注意事项:
1、字典中的键必须独一无二,但值则不必。创建时如果同一个键被赋值两次,后一个值会被记住;

# 字典里key是唯一的,因为后面需要用key来进行操作的
# 相同两个key,只会记住后一个key的值
dict2 = {'name': '吴', 'age': 18, 'sex': '男', 'name': 'wu'}
print(dict2)
{'name': 'wu', 'age': 18, 'sex': '男'}

Process finished with exit code 0

2、键必须不可变,可以用数字,字符串或元组充当,但是不可以用列表
2.1、不可变类型–数字

# key的数据类型必须是不可变数据类型
# 不可变类型--数字
dict2 = {'name': '吴', 'age': 18, 'sex': '男'}
dict2[12] = 'a'
print(dict2)
{'name': '吴', 'age': 18, 'sex': '男', 12: 'a'}

Process finished with exit code 0

2.2、不可变类型–字符串

dict2 = {'name': '吴', 'age': 18, 'sex': '男'}
dict2['key1'] = 'value1'
print(dict2)
{'name': '吴', 'age': 18, 'sex': '男', 'key1': 'value1'}

Process finished with exit code 0

2.3、不可变类型–元组

dict2[('key2', 'key3')] = 'value2'
print(dict2)
{'name': '吴', 'age': 18, 'sex': '男', ('key2', 'key3'): 'value2'}

Process finished with exit code 0

2.4、可变类型–列表(会报错)

dict2[[1, 2, 3]] = 'value3'
print(dict2)
Traceback (most recent call last):
  File "D:/PycharmProjects/0406_01.py", line 29, in <module>
    dict2[[1, 2, 3]] = 'value3'
TypeError: unhashable type: 'list'

Process finished with exit code 1

三、字典的修改、更新(当然使用fromkeys()也是可以新增修改的)
1、使用key作为索引来更改元素的值,如果key存在则更新key的值

dict1 = {'name': '吴', 'age': 18, 'sex': '男'}
# 使用key来更新、修改,如果key存在则更新key的值
dict1['name'] = 'wu'
print(dict1)
{'name': 'wu', 'age': 18, 'sex': '男'}

Process finished with exit code 0

2、使用key作为索引来更改元素的值,如果key不存在则新增一条key:value

dict1 = {'name': '吴', 'age': 18, 'sex': '男'}
# 使用key来更新、修改,如果key不存在,则新增一条key:value
dict1['address'] = '上海徐汇区'
print(dict1)
{'name': '吴', 'age': 18, 'sex': '男', 'address': '上海徐汇区'}

Process finished with exit code 0

四、字典的几个相关函数
1、keys()函数

# keys()函数,返回一个包含字典所有KEY的列表,会得到一个形式列表,如果你需要将这个形式列表转换为真正的列表,进行数据类型转换
dict1 = {'name': '吴', 'age': 18, 'sex': '男'}
print(list(dict1.keys()))
['name', 'age', 'sex']

Process finished with exit code 0

2、values()函数

dict1 = {'name': '吴', 'age': 18, 'sex': '男'}
print(list(dict1.values()))
['吴', 18, '男']

Process finished with exit code 0

3、删除函数,有del、clear()、pop()

# 删除,有del、clear()、pop()
dict1 = {'name': '吴', 'age': 18, 'sex': '男'}
del dict1['name']
dict1.clear()
dict1.pop('name')  # pop()这里是将key弹出并删除,想要保留弹出的可以给个变量接收
dict1.pop('abc', '这个key不存在') # pop(key, 提示信息)如果没找到key,就会抛一个给定的提示信息

4、get()函数

# get(key,'default提示信息')函数,返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None)
dict1 = {'name': '吴', 'age': 18, 'sex': '男'}
# dict1.get('name')
print(dict1.get('name'))
# dict1.get('abc', '这个key不存在')
print(dict1.get('abc', '这个key不存在'))
吴
这个key不存在

Process finished with exit code 0

5、update()函数

# update()函数,将字典dict1的键值对添加到字典dict2中,无则添加,有则覆盖
dict1 = {'name': '吴', 'age': 18, 'sex': '男'}
dict2 = {'name': '哈', 'age': 20, 'address': '上海徐汇区'}
dict1.update(dict2)
print(dict1)
{'name': '哈', 'age': 20, 'sex': '男', 'address': '上海徐汇区'}

Process finished with exit code 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 是一种易于学习且功能强大的编程语言,适合青少年学习编程。下面是一个简单的 Python 编程教程,可以帮助青少年入门。 1. 安装 Python 首先,需要安装 Python 解释器。可以从 Python 官网下载并安装,也可以使用 Anaconda 发行版,它包括了 Python 解释器和很多常用的库和工具。 2. 编写第一个 Python 程序 打开 Python 解释器或者文本编辑器,在代码编辑区域输入以下代码: ``` print("Hello, world!") ``` 这是一个经典的入门示例,它会输出 "Hello, world!" 到屏幕上。保存文件并运行即可看到结果。 3. 基本语法 Python 使用缩进来表示代码块,而不是花括号。例如,下面是一个 if 语句的示例: ``` if x > 0: print("x is positive") else: print("x is zero or negative") ``` 这个示例中,如果变量 x 的值大于 0,就会输出 "x is positive",否则输出 "x is zero or negative"。 4. 数据类型 Python 支持多种数据类型,包括整数、浮点数、字符串、列表、元组、字典等。例如,下面是一个列表的示例: ``` fruits = ["apple", "banana", "cherry"] print(fruits[0]) # 输出 "apple" ``` 这个示例中,定义了一个包含三个元素的列表 fruits,并且输出了列表中的第一个元素 "apple"。 5. 函数 Python 支持函数的定义和调用。例如,下面是一个计算斐波那契数列的函数: ``` def fibonacci(n): if n == 0: return 0 elif n == 1: return 1 else: return fibonacci(n-1) + fibonacci(n-2) print(fibonacci(10)) # 输出 55 ``` 这个示例中,定义了一个名为 fibonacci 的函数,它接受一个参数 n,并且根据斐波那契数列的递推公式计算出第 n 个数的值,并将结果返回。然后,在主程序中调用 fibonacci 函数并输出结果。 这些是 Python 编程的基础知识,希望可以帮助青少年入门编程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值