Python DAY 06 字典 元组 集合 两种排序算法

Python Day06 重点知识归纳

复习

一.列表


  1. append(n)
    insert(i,n)
    extend([])


  2. pop(i) 索引
    remove(n)
    count()
    clear()
    del


  3. age[0] = 99


  4. print(age[0])

  5. index:
    copy(): 浅拷贝 只拷贝一维
    copy.deepcopy(): 深拷贝 全部维度都可拷贝

    sort():默认为升序
    sort(resverse = Ture)
    sorted():升序 不改变原列表
    sorted(reverse = Ture)

    reverse():倒序
    reversed():倒序 且不改变原列表

  6. 关于random
    ramdom.choice([])
    random.randint()
    random.randrange()
    random.random()
    random.uniform() —
    random.shuffle() — 打乱现有的

字典

  1. 字典的三个特点
    a.唯一性
    b.不可变性
    c.无序性 (无下标)


  2. print(d[‘key’])
    print(d.get(‘key’)) — get 的方法不会报错 默认返回值为None
    print(d.get(‘key’,False)) —设置返回值 现在返回值被设置为False

  3. 遍历
    for k in d:
    print(k) — 遍历key

    for v in d.values():
    print(v) — value

    for k,v in d.items():
    print(k,v) — key value

    k = d.key()
    print(k,list(k))

  4. 字典的合并
    d1 = {1:2}
    d2 = {2.3}
    d1.update(d2)
    print(d1) — {1:2,2:3}


  5. d[‘sex’] = ‘男’
    #如果没有会加入进去


  6. d.pop(‘age’) #指定key的一整个元素
    d.popitem() #删除最后一项 可以认为是随机删除一项

  7. zip
    d = dict(zip[‘name’,‘age’],[‘LZM’,30])
    d = dict(zip(‘123’,‘abc’))

  8. 列表与字典的区别
    List

    1. 定义方式: [] , 一般存放相同类型的数据
    2. 内存相对于字典来说小
    3. 数据量较大时 查找所需要的时间较多
      dict
    4. 定义方式: {} ,一般存放同一个事务的不同属性
    5. 内存消耗较大
    6. 数据量不管多少 对查询速度影响并不大

元组

  1. 元组与列表的转换
    list((1,2,3))
  2. 关于下标 遍历 长度 重复 成员 切片 排序 与列表相似
  3. 元组最主要的特点: 不能修改

集合

  1. 集合的特点:

    1. 无序性
    2. 唯一 不能重复
  2. 集合没有重复的部分 所以查重可以使用列表转化成集合再转化回来 — 这也是 现在最快的方法

  3. set(dict) # 只取key

  4. 遍历 长度 与列表相似


  5. s.add()
    s.update([])


  6. s.remove()
    s.clear()
    7.集合之间的关系
    s1 = {1, 2, 3, 4}
    s2 = {3, 4, 5, 6}

    print(s1 & s2) # 交集; {3, 4}
    print(s1 | s2) # 并集; {1, 2, 3, 4, 5, 6}
    print(s1 - s2) # 差集; {1, 2}
    print(s1 ^ s2) # 对称差集; {1, 2, 5, 6}
    print(s1 > s2) # s1包含s2; False
    print(s1 < s2) # s2包含s1; False

两种常见的排序算法

  1. 冒泡排序
nums = [9,7,6,8,5,4,3,2,1]
for i in range(len(nums)-1):  # i=0,1,2,3,4,5,6,7
    for j in range(len(nums)-1-i):
        if nums[j] > nums[j+1]:
            nums[j], nums[j+1] = nums[j+1], nums[j]

print(nums)

2.选择排序

nums = [9,7,6,8,5,4,3,2,1]
for i in range(len(nums)-1):  # i=0,1,2,3,4,5,6,7
    # 求剩下数中最小数的下标
    min_index = i
    for j in range(i, len(nums)):
        if nums[j] < nums[min_index]:
            min_index = j
    # 用最小数和第i个元素交换
    nums[i], nums[min_index] = nums[min_index], nums[i]

print(nums)

3.自己写的两种排序 – 选择排序

# 个人认为这个最简便理解
list1 = [34, 5, 46, 24, 24, 54, 65, 54]
lst2 = []
for i in range(len(list1)):
    a = min(list1)
    lst2.append(a)
    list1.remove(a)
print(lst2)
#理解起来较为复杂
list1 = [34, 5, 46, 23, 23, 54, 65, 54]
for i in range(0,len(list1)-1):
    lst2 = list1[i:]
    print(lst2)
    a = min(lst2)
    b =lst2.index(a) + i
    list1[b] ,list1[i] = list1[i] , list1[b]
print(list1)

你可能感兴趣的:(Python)