IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python基础知识整理 03-字典、集合 -> 正文阅读

[Python知识库]python基础知识整理 03-字典、集合

目录

1 字典

1.1 字典创建

1.2 字典操作

1.2.1 使用[]添加或修改元素

1.2.2 update()合并字典

1.2.3 del删除具有指定键的元素

1.2.4 clear()清除所有元素

1.2.5使用in判断是否存在

1.2.6 使用[key]获取元素

1.2.7 获取字典所有键、值、键值对

1.2.8 字典遍历

1.2.9 字典、元组、列表转换

2 集合

2.1 set集合创建

2.2 set添加元素

2.3 set元素删除

2.4 set元素遍历

2.5 set并集、交集

2.6 set应用:统计字符个数


1 字典

1.1 字典创建

用大括号{}将一系列以逗号隔开的键值对(key:value)包裹起来即可以进行字典的创建。最简单的字典是空字典,不包括任何的键值对。

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

1.2 字典操作

1.2.1 使用[]添加或修改元素

向字典添加元素非常简单,只需要指定该元素的键并赋予相应的值即可。

如果该元素的键已经存在于字典中,那么该键对应的旧值会被新值取代。

如果该元素的键并未在字典中出现,则会被加入到字典。与列表不同,你不需要担心赋值过程中Python会抛出越界异常。

>> info = {'name': '班长', 'id': 100, 'sex': 'f', 'address': '地球亚洲中国北京'}
>>> info['name']
'班长'
>>> info['name'] = '小明'
>>> print(info)
{'name': '小明', 'id': 100, 'sex': 'f', 'address': '地球亚洲中国北京'}
>>> info['age'] = 18
>>> print(info)
{'name': '小明', 'id': 100, 'sex': 'f', 'address': '地球亚洲中国北京', 'age': 18}

1.2.2 update()合并字典

update()可以将一个字典的键值对赋值到另一个字典中。

如果待添加的字典于待扩充的字典包含同样的键值的话,新归入的字典的值会覆盖原有的值。

>>> dict1 = {'name': 'boby', 'age': 18}
>>> dict2 = {'sex': 'men', 'like': 'python'}
>>> dict3 = {'address': 'china', 'name': 'baby'}
>>> dict1.update(dict2)
>>> print(dict1)
{'name': 'boby', 'age': 18, 'sex': 'men', 'like': 'python'}
>>> dict1.update(dict3)
>>> print(dict1)
{'name': 'baby', 'age': 18, 'sex': 'men', 'like': 'python', 'address': 'china'}

1.2.3 del删除具有指定键的元素

>>> dict1 = {'name': 'boby', 'age': 18}
>>> del dict1['age']
>>> print(dict1)
{'name': 'boby'} 

1.2.4 clear()清除所有元素

使用clear(),或者给字典重新赋值一个空字典{},可以将字典中所有元素删除。

>>> dict1 = {'name': 'boby', 'age': 18}
>>> dict1.clear()
>>> print(dict1)
{}
>>> dict1 = {'name': 'boby', 'age': 18}
>>> dict1 = {}
>>> print(dict1)
{}

1.2.5使用in判断是否存在

如果你希望判断某一个键是否存在于一个字典中,可以使用in

>>> dict1 = {'name': 'boby', 'age': 18}
>>> 'name' in dict1
True
>>> 'sex' in dict1
False

1.2.6 使用[key]获取元素

这是对字典最常用进行的操作,只需要指定字典名和键即可获得对应的值。

如果字典中不包含指定的键,会抛出一个异常。

>>> dict1 = {'name': 'boby', 'age': 18}
>>> dict1['name']
'boby'
>>> dict1['sex']
Traceback (most recent call last):
  File "<input>", line 1, in <module>
KeyError: 'sex'

有两种方法可以避免这种情况的发生。

第一种是在访问前通过in测试键是否存在;

>>> dict1 = {'name': 'boby', 'age': 18}
>>> if key in dict1:
...     print(dict[key])
... else:
...     print('键值不存在')
...    
键值不存在

第二种使用字典函数get()。需要指定字典名,键值和一个可选值。

如果键存在,则会得到对应的值,如果不存在,将会返回可选值,如果没有指定可选值,会得到None。

>>> dict1 = {'name': 'boby', 'age': 18}
>>> dict1.get('name')
'boby'
>>> dict1.get('sex', '键值不存在')
'键值不存在'
>>> dict1.get('sex')
None

1.2.7 获取字典所有键、值、键值对

使用keys()可以获得字典中所有的键。在Python2中,keys()会返回一个列表,而在Python3中返回dict_keys类型。

使用values()可以获取字典中所有值。返回dict_values类型

使用items()函数可以获取字典中所有的键值对。返回dict_items类型

>>> dict1 = {'name': 'boby', 'age': 18}
>>> dict1.keys()
dict_keys(['name', 'age'])
>>> dict1.values()
dict_values(['boby', 18])
>>> dict1.items()
dict_items([('name', 'boby'), ('age', 18)])

它的键是迭代器形式。如果我们需要一个完整的列表,在Python中,我们可以手动调用list()将dict_keys转换为列表类型。

>>> dict1 = {'name': 'boby', 'age': 18}
>>> [key for key in dict1.keys()]
['name', 'age']
>>> [value for value in dict1.values()]
>>> ['boby', 18]
>>> [items for items in dict1.items()]
[('name', 'boby'), ('age', 18)]

1.2.8 字典遍历

# 遍历字典中的key
for?key in?students.keys():
????print(key,?end=" ")

# 遍历字典中的values
for?value in?students.values():
????print(value,?end=" ")

# 遍历字典中的key-value
for?key,?value in?students.items():
????print("%s:%s"?%?(key,?value),?end=" ")

1.2.9 字典、元组、列表转换

my_list =?[1,?2,?3,?4]
my_tuple =?tuple(my_list)
print("列表转元组:",?my_tuple)
my_list =?[["name",?"John"],?["age",?18],?["sex",?"男"]]
my_dict =?dict(my_list)
print("列表嵌套转字典:",?my_dict)
print("--------------")
# 字典->列表 元组
my_dict =?{'sex':?'男',?'age':?18,?'name':?'John'}
my_list =?list(my_dict.keys())
print("字典keys转列表:",?my_list)
my_list =?list(my_dict.values())
print("字典values转列表:",?my_list)
my_list =?list(my_dict.items())
print("字典items转列表:",?my_list)
print("--------------")
my_tuple =?tuple(my_dict.keys())
print("字典keys转元组:",?my_list)
my_list =?tuple(my_dict.values())
print("字典values转元组:",?my_list)
my_list =?tuple(my_dict.items())
print("字典items转元组:",?my_list)
"""
打印结果
 
列表转元组: (1, 2, 3, 4)
列表嵌套转字典: {'name': 'John', 'age': 18, 'sex': '男'}
--------------
字典keys转列表: ['sex', 'age', 'name']
字典values转列表: ['男', 18, 'John']
字典items转列表: [('sex', '男'), ('age', 18), ('name', 'John')]
--------------
字典keys转元组: [('sex', '男'), ('age', 18), ('name', 'John')]
字典values转元组: ('男', 18, 'John')
字典items转元组: (('sex', '男'), ('age', 18), ('name', 'John'))
"""

2 集合

set集合是一个无序不重复元素集。由于set是一个无序集合,set并不记录元素位置,所以不支持下标操作和切片操作。

2.1 set集合创建

创建set集合,我们可以使用set函数来创建:

# 1. 创建一个空的set集合
my_set = set()

# 2. 创建一个数字元素集合,
# 注意:set会剔除重复元素
my_set = set([1, 2, 3, 4, 5, 5])
print(my_set)

# 3. 创建一个唯一元素的字符集合
my_set = set("hello world!")
print(my_set)

2.2 set添加元素

向set集合中添加元素,可以使用add()函数和update()函数,add()可以一次添加一个元素,update()函数可以一次添加多个元素.

# 创建一个空的集合
my_set = set()

# add()函数向set中添加元素
my_set.add(10)
my_set.add(20)
my_set.add(30)

# 打印set集合
print(my_set)

# update()函数添加多个元素
my_set.update([60, 40, 80, 90])
my_set.update((160, 140, 180, 190))
my_set.update("hello")

# 如果添加的元素是一个字典,那么将字典的key添加到集合中
# my_set.update({"name": "smith", "age": 1030})
print(my_set) 

2.3 set元素删除

删除set集合中的元素可以使用pop()、remove()函数、discard()函数 pop()函数会删除set集合中的任意一个元素,如果set集合为空,会抛出KeyError错误。

remove(element)函数从集合中删除一个元素,如果元素不存在,会抛出KeyError错误。

discard(val)函数删除集合中的一个元素,如果不存在,则不做任何事.

my_set = set([9, 2, 3, 4, 7])

# 删除任意一个元素
my_set.pop()
print(my_set)

# 删除指定元素
my_set.remove(4)
print(my_set)

# 删除元素
my_set.discard(3)
print(my_set) 

2.4 set元素遍历

# 创建一个集合
my_set = set([1, 2, 3, 4])

# 遍历set集合
for value in my_set:
    print(value, end="|")

2.5 set并集、交集

my_set1 = set([1, 2, 3, 4, 5])
my_set2 = set([3, 4, 5, 6, 7])

# 1. 求两个集合的并集
new_set1 = my_set1.union(my_set2)
# 或者
new_set2 = my_set1 | my_set2
print(new_set1)
print(new_set2)

# 2. 求两个集合的交集
new_set3 = my_set1.intersection(my_set2)
# 或者
new_set4 = my_set1 & my_set2
print(new_set3)
print(new_set4)

2.6 set应用:统计字符个数

# 统计字符串中字符的个数
my_string = input("请输入任意字符串:")

# 先对字符串去重
new_string = set(my_string)

# 字典记录字符出现次数
my_count = {}

# 遍历new_string
for ch in new_string:
    my_count[ch] = my_string.count(ch)

# 输出结果
print(my_count)

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-07-03 10:44:49  更:2022-07-03 10:46:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 2:48:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计