美文网首页
04,字典_集合_冒泡排序

04,字典_集合_冒泡排序

作者: tzktzk1 | 来源:发表于2023-11-25 02:57 被阅读0次

字典:

字典:是复合型数据
    定义:是具有键值映射关系的一组无序数据组合,可以修改 --》无序可变
    特点:
        标识符:{}
        关键字:dict
        无序数据,即没有索引值
        字典中的元素是 key:value 的形式存储数据 键值对
        key:是唯一的不能修改的数据,支持数据类型有:int, float, bool,str,元组
        value:可以修改的数据,支持任何数据类型

空字典;
    #1、通过 创建空字典,然后赋值
        a = {}
        a = dict()  # dict() 这样的方法去创建一个空字典; list(),tuple()
        
# a = {"key":"value"}   # 非空字典
# print(a["key"])       # 通过key值得到对应的value值

a.update({"key":{"key":"value"}})   
# update方法会先去字典里找key这个键值对,如果找到则更新这条数据,如果没找到则添加本条数据到字典中
a.update({
    "key1" : "value1",
    "key2": "value2",
    "key3": "value3",
})
print(a)        # 输出字典全部内容
# { ' key': '{ "key" : "value"}','key1': 'value1', 'key2': 'value2','key3 ': 'value3'}
print(a.keys())     # 输出字典所有 key值
# dict_keys([ ' key', 'key1' , 'key2 ', 'key3 ' ])

a = {"'name " :"长风","age " : "34","sxe ":"男"}
print(a)
# {'name' :'长风','age': '34', 'sxe': '男'}

# 虽然字典我们说是无序的,但是在数据存贮过程中是有序的
a = {"'name " :"长风","age " : "34","sxe ":"男"}
a.popitem()     # 从后往前删
print(a)
# { 'name' :'长风','age' : '34'}

a = {"'name " :"长风","age " : "34","sxe ":"男"}
a.pop("name")   # 删除字典里的一条数据
print(a)
# { 'age' : '34' , 'sxe' : '男'}

a = {"'name " :"长风","age " : "34","sxe ":"男"}
a[ "name"] = None   # 字典中的键值对必须一一对应删除和修改关系;
print(a)
# { 'name ' : None, 'age ' : '34','sxe ': '男'}

字典是无序,但是它的存贮过程是有序的;

集合:

集合是一组特定数据的无序集合,所有元素不会重复
特点:
    标识符:set()或者{}
    关键字:set
    数据类型:int,float, bool,元组,
    不支持:列表、字典、集合类型
    无序数据,即没有索引值
    所有数据不会重复

使用场景:
    进行成员关系测试
    刮除重复元素:身份证号码,订单号

    # dict和set这样的数据类型,set完全无序,dict是存储过程是有序的

# 增加
    s3 = {4,2,3, 'python '}
    s3.add( ' hello huace ')
    s3.add( "test")
    print(s3)
    # {'python',2,3,4, 'test','hello huace'}

# 删除
    # s3.pop()  # 随机删除集合内一个数据
    # s3.remove("python")   # 删除集合内制定数据,如果集合内没有此数据会报错 KeyError:'python'
    # set 和 dict 都会触发 KeyError ,一般情况出现KeyError就是 字典或集合中出了问题

集合运算
    并集:集合1 │ 集合2    或者      集合1.union(集合2)
    交集:集台1 & 集合2    或者      集合1.intersection(集合2)
    差集:集合1 - 集合2    或者      集合1.difference(集合2) [不一样的东画] 
    
    集合中不能有重复的内容,所以集合可以去重;
    
    s1={1,2,3,4,5,6}
    s2= {10,20,30,3,4,5}
    
    # 并集
    print(s1 | s2)
    # {1,2,3,4,5,6,10,20,30}
    
    # 交集
    print(s1 & s2)
    # {3,4,5}
    
    # 差集1:s1中存在,但是s2中不存在的数据
    print(s1 - s2)
    # {1,2,6}
    
    # 差集2:s2中存在,但是s1中不存在的数据
    print(s2 - s1)
    # {10,20,30}

在python中,我们常用的数据类型:str、int、list,dict、tuple、bool
不常用的数据:set/float

a = "str"   # str
b = "int"   # str
a1 = "1"    # str
a2 = "0.1235"   # str
a3 = 1      # int
a4 = 1.0    # float
a5 = "[1,2,3,4,5]"  # str
a6 = [1,2,3,4,5]    # list 列表
a7 = {"","",""} # set 集合
a8 = {"name" : 1,"":1,"a" :22}  # dict 字典
a9 = (1,'a',3.13,'hello',True,[1,2,3],('a', 'b ','c ')) # tuple 元组
a10 = ()    # 空元组 (或者 a10 = tuple())
a11 = []    # 空列表 (或者 a11 = list())
a12 = {}    # 空字典 (或者 a12 = dict()) 
a13 = set() # 空集合只能用 set() 构建

冒泡排序:

list1 = [16,29,90,9,13,2,34,56,773,735,883,834,56,34,13]
# len == 获取长度
# range() 通过整数返回,一次返回内容
# list1[0], list1[1] = list1[1], list1[0]   # 实现list1中 2个数据的位置互换

a = 0   # 统计循环次数
# 方式一:
for i in range(len(list1)):
    for j in range(len(list1) - 1):
        a += 1
        if list1[j] > list1[j + 1]:   # 升序排列
            list1[j], list1[j + 1] = list1[j + 1], list1[j]
print(list1)
print("程序循环了 {} 次".format(a),end="")    # 循环210次


# 方式二:
for i in range(len(list1) -1):
    for j in range(len(list1) - i - 1):
        a += 1
        if list1[j] > list1[j + 1]:
            list1[j], list1[j + 1] = list1[j + 1], list1[j]
print(list1)
print("程序循环了 {} 次".format(a),end="")    # 循环105次

相关文章

  • O(n²) 的排序算法

    冒泡排序 最常见的排序方法就是冒泡排序,冒泡排序会重复比较两个相邻的元素,如果需要排序,就要执行排序。集合中最大的...

  • 9.30 NSSet 集合 (去重,排序)

    NSSet 集合 最有用的功能:去重,排序 冒泡排序

  • 排序算法1: 冒泡排序算法

    C++ 冒泡排序算法的实例源代码,一些排序方法的代码集锦,该函数模板使用冒泡法对集合元素进行排序,参数说明: co...

  • 33.去除列表中的重复元素

    用集合 用字典 用字典并保持顺序 列表推导式 sorted排序并且用列表推导式.

  • 对字典进行排序 和 list.sort()的使用

    按照字典的值value进行排序 .sort()方法只有列表才有,集合,字典,元祖都没有sort()方法。所以对字典...

  • 算法-冒泡排序

    算 法:冒泡排序算法时间复杂度: 冒泡排序算法概述 冒泡排序伪代码 冒泡排序实现 冒泡排序算法概述 冒泡排...

  • 字典,集合

    Time: 2019-08-04 字典、集合 dict set 在Python 3.7后,字典被确定为有序的键值对...

  • 详解排序算法--插入排序和冒泡排序

    冒泡排序插入排序插入排序和冒泡排序分析 冒泡排序 冒泡排序(英语:Bubble Sort,台湾另外一种译名为:泡沫...

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • 七大排序算法之冒泡排序

    七大排序算法之冒泡排序 @(算法笔记)[排序算法, 冒泡排序, C++实现] 冒泡排序介绍 冒泡排序是七大排序算法...

网友评论

      本文标题:04,字典_集合_冒泡排序

      本文链接:https://www.haomeiwen.com/subject/wcjxwdtx.html