iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python基础:字典(dict)与集合
  • 505
分享到

Python基础:字典(dict)与集合

字典基础Python 2023-01-31 00:01:07 505人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

查找场景下与列表的性能对比    字典与集合之所以高效的原因是:内部结构都是一张哈希表。   平均情况下插入、查找和删除的时间复杂度为 O(1).   假设有数量100,000的产品列表: import time id = [x for

查找场景下与列表的性能对比 

  字典与集合之所以高效的原因是:内部结构都是一张哈希表。

  平均情况下插入、查找和删除的时间复杂度为 O(1).

  假设有数量100,000的产品列表:

import time
id = [x for x in range(0, 100000)]
price = [x for x in range(200000, 300000)]
products = list(zip(id, price))
#products
# [(0, 200000), (1, 200001)....(99999, 299999)]

  要统计出总共有多少种不同的价格,分别用列表list与集合set来作为存储的数据结构,来对比下性能。

  用列表作为数据结构:

# # 计算列表版本的时间

# list version
def find_unique_price_using_list(products):
    unique_price_list = []
    for _, price in products: # A
        if price not in unique_price_list: #B
            unique_price_list.append(price)
    return len(unique_price_list)

start_using_list = time.perf_counter()
find_unique_price_using_list(products)
end_using_list = time.perf_counter()
print("time elapse using list: {}".fORMat(end_using_list - start_using_list))
#time elapse using list: 53.206719899999996

 

  用集合作为数据结构:

# # 计算集合版本的时间
# set version
def find_unique_price_using_set(products):
    unique_price_set = set()
    for _, price in products:
        unique_price_set.add(price)
    return len(unique_price_set)     

start_using_set = time.perf_counter()
find_unique_price_using_set(products)
end_using_set = time.perf_counter()
print("time elapse using set: {}".format(end_using_set - start_using_set))
#time elapse using set: 0.009022799999996778

 

  从结果可以看出,性能差异非常大,使用合适的数据结构非常重要。

Dict与Set基础

  1. 集合不支持索引操作
  2. 判断元素是否在dict/set中用 in 操作符
dict1 = {'a':1,'b':2}
print('a' in dict1) #True
print(1 in dict1)   #False
set1 = {'a','b','c'}
print(1 in set1)   #False
print('b' in set1) #True

  3.集合的pop()方法是随机返回一个元素,并把集合中的该元素删除

  4.集合与字典的排序

#字典排序
d = {'b': 1, 'a': 2, 'c': 10}
d_sorted_by_key = sorted(d.items(), key=lambda x: x[0]) # 根据字典键的升序排序
d_sorted_by_value = sorted(d.items(), key=lambda x: x[1]) # 根据字典值的升序排序
d_sorted_by_key
[('a', 2), ('b', 1), ('c', 10)]
d_sorted_by_value
[('b', 1), ('a', 2), ('c', 10)]

#集合排序
s = {3, 4, 2, 1}
sorted(s) # 对集合的元素进行升序排序
[1, 2, 3, 4]

 参考资料:

 极客时间《python核心技术与实战》专栏

 

--结束END--

本文标题: Python基础:字典(dict)与集合

本文链接: https://www.lsjlt.com/news/182299.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python基础:字典(dict)与集合
    查找场景下与列表的性能对比    字典与集合之所以高效的原因是:内部结构都是一张哈希表。   平均情况下插入、查找和删除的时间复杂度为 O(1).   假设有数量100,000的产品列表: import time id = [x for...
    99+
    2023-01-31
    字典 基础 Python
  • Python基础——字典(dict)
    由键-值对构建的集合。 创建   dic1={} type(dic1)   dic2=dict() type(dic2)   初始化 dic2={'hello':123,'world':456,'python':789} ...
    99+
    2023-01-30
    字典 基础 Python
  • python-字典dict和集合set
    目录1.字典 字典的相关操作 获取字典的长度2.集合 1.字典 字典是python中的一种数据结构。 它的内容由**键-值(key-value)**的方式存在。 dict拥有良好的...
    99+
    2022-11-12
  • python--字典(dict)和集合(set)详解
    目录一、集合1.集合定义2.创建集合3.去重4.集合增删5.关系运算6.排序7.frozenset8.练习9.特性二、字典1.字典定义2.字典打印3.字典元素删除4.setdefau...
    99+
    2022-11-12
  • python基础入门之字典和集合
    目录正文字典集合python 中有6大标准类型: 数字(Number) 字符串(String) 列表(List) 元组(Tumple) 集合(Set) 字典(Dictionary...
    99+
    2022-11-12
  • Python基础学习列表+元组+字典+集合
    目录一、列表二、元组三、字典四、集合五、总节前言: 这一章的知识紧接上一章,零基础的小伙伴可以从上一章学起来。当然,你也可以收藏起来慢慢学习,学习是不可操之过急的啦… ...
    99+
    2022-11-11
  • 如何分析python中字典dict和集合set
    今天就跟大家聊聊有关如何分析python中字典dict和集合set,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.字典字典是python中的一种数据结构。它的内容由**键-值(ke...
    99+
    2023-06-22
  • Python中的字典与集合
    Dictionary:字典     Set:集合 字典的语法: Dictionary字典(键值对) 语法: dictionary = {key:value,key:value,key n:value n} 与 C# dictionary...
    99+
    2023-01-31
    字典 Python
  • 【Python】基础数据结构:列表——元组——字典——集合
    文章目录 一、简述二、Python中的列表详解2.1 创建列表2.2 访问列表元素2.3 修改列表元素2.4 列表切片2.5 列表方法2.6 列表推导式 三、Python中的元组详解3.1...
    99+
    2023-10-25
    python 数据结构 原力计划
  • python集合与字典的用法
    python集合与字典的用法 集合: 1.增加  add 2.删除   •del 删除集合          •discard(常用)删除集合中的元素  #删除一个不存在的元素不会报错     •remove 删除一个不存在的元素会报错 ...
    99+
    2023-01-30
    字典 python
  • python基础之字典
    字典 # 字典:也是python中重要的数据类型,字典是由键值对组成的集合 # 通常使用 键来访问数据,效率非常高,和list一样支持对数据的添加、修改和删除操作 # 特点: ...
    99+
    2022-11-12
  • python字典dict与json数据转换
    JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。现在的接口请求request params和response body,大都是使用json格式的数据。 Python使用reques...
    99+
    2023-09-09
    python json 软件测试
  • python字典和集合
      1. 字典字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必...
    99+
    2023-01-31
    字典 python
  • JavaScript字典与集合详解
    目录字典什么是字典JavaScript中的字典字典的应用集合什么是集合JS中的集合集合中的操作交集、并集、差集的封装字典 什么是字典 说到字典,第一时间想到的应该就是新华字典,实际上...
    99+
    2022-11-13
  • Python字典的基础操作
    目录1、字典的概念2、创建和使用字典2.1 创建字典3、字典的运算3.1 字典的方法1、字典的概念 Python中的字典数据类型和现实中的字典很像,它是以键值对(键和值的组合)的方式...
    99+
    2022-11-12
  • [Python]学习基础篇:字典
    字典字典这个数据结构的功能和它的名字一样,根据key得到value值。字典的定义 方法: dict={‘key1’:value1,’key2’:value2……..} 对于字典,key值在字典中不能重复,若出现重复,将更改原有的key对应的...
    99+
    2023-01-31
    字典 基础 Python
  • Python编程基础之字典
    目录一、字典概念二、字典操作(一)创建字典1、先创建空字典,再添加元素(键值对)2、直接创建包含若干键值对的字典(二)字典操作1、读取字典元素 - 按键取值2、添加字段元素 - 按键...
    99+
    2022-11-12
  • python基础学习5----字典
    字典由大括号和键值对组成,特点为无序,键唯一 1.字典的创建 #直接创建字典 dic1={'name':'a','age':20} #通过dict创建字典,输出都为{'name': 'a', 'age': 20} dic2=dict((...
    99+
    2023-01-30
    字典 基础 python
  • python元组 字典 集合
    1.列表构建栈的数据结构:栈的特点:先进后出 #!/usr/bin/env python #coding:utf-8 stack = [] info = """ 栈结构 1.入栈 2.出栈 ...
    99+
    2023-01-31
    字典 python
  • python基础之集合
    # set 不支持索引和切片,是一个无需的不重复得到容器 # 类似于字典,但是只有key 没有value # 创建集合 dic1={} set1={1,2,3} print...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作