B13_Python编程小技巧总结

1. 序列赋值

2. 重复打印可迭代序列(列表|元组|字符串)N次

  1. 可迭代序列(列表|元组|字符串)可以用*乘的方式重复N次
  2. 集合|字典不能用这种方式重复N次

3. 列表|元组|字符串去重

  • 列表|元组|字符串去重

    1. 使用set()可以去重
    2. 使用字典{}.fromkeys() 也可以去重

  • 去重之后按照原来的索引进行排序,保证原来的次序

    list.index(elem) 按照这个规则进行排序即可,可以获取elem这个值在list中的索引,然后按照这个索引进行排序即可

4. 原地交换两个变量的值a,b=b,a

5. 带索引的遍历 (enumerate)

在迭代可迭代的序列的时候,可以使用for index,val in enumerate(iterable,start=0),来给遍历的元素提供一个索引,默认start是从0开始的

扫描二维码关注公众号,回复: 13511096 查看本文章

6. 合并字符串序列为一个字符串(join)

采用s.join()的方式可以将一个字符串序列合并为一个字符串,其中s是字符串合并的时候两个间隔字符串之间插入的字符串

7. 统计可迭代序列中元素出现的个数

  1. 最常使用的是iterable.count(elem)
  2. 使用Counter(iterable),可以返回一个字典,里面是元素为键,出现的个数为值的键值对

8. Python中合并字典的技巧

  • 首先介绍Python中合并字典的一般方法(update)

  • 经典方式使用**解包然后再使用dict或者{}合并字典

  • 使用dict.items()

    首先要明白一点 dict.items()是可以求并集的,并且并集的结果是一个set

    在这里插入图片描述

  • 使用字典推导式

    字典推导式 {k:v for k,v in d.items()}

    在这里插入图片描述

9. 可迭代序列的元素的唯一性

  • 使用set()

先用set转换为集合,然后通过len(set)len(iterable) 是否相等去判断,如果相等,证明可迭代序列里的元素是唯一的,如果不相等,证明可迭代序列中有重复元素

在这里插入图片描述

  • 使用iteralbe.count()

    使用iterable.count(elem) 遍历可迭代序列,如果有大于1的结果,就返回False,如果没有就返回True

    在这里插入图片描述

  • 使用Counter(),查看Values()的值有没有大于1的,如果有大于1的就证明非唯

    Counter(iterable)返回一个字典,里面是元素和元素出现的次数的键值对,可以通过看values的值,来看可迭代对象的元素是否是唯一的

10. 根据条件过滤掉可迭代序列中的一些不满足条件的元素

  • 使用列表推导式

    [x for x in iterData if x expression]

  • filter(func,data)

    使用filter过滤函数,会将data里面的数据逐个的带入到func当中,如果func的返回为True,就保留这个元素,如果为假,就丢弃这个元素

11. 使用三元操作符来实现条件赋值

  • 单层的三元操作符赋值语句

    val = a if expression else b

  • 双层的条件赋值语句

    a if expression1 else (b if expression else c) ,简单来说就是在else里面再嵌套一层if else表达式语句

    在这里插入图片描述

12. 字典排序

sorted(dict.items(),key)

使用dict.items()来进行排序,排序的结果是一个列表,然后通过dict再转换为字典

  • 先给字典通过zip转换为键值对元组,然后再进行排序

    这里有个坑就是zip对象是一个迭代器,所以只能使用一次,zip对象如果重复使用,就会得到空结果
    这里面的一个本质的东西就是zip对象是一个迭代器,只能往前,不能往后,并且不能重复的使用

13. 对字典的键值进行翻转

  1. 采用字典推导式, {val:key for key,val in dict.items()}
  2. 采用dict构造和zip函数结合 dict(zip(dict.values(),dict.keys()))

14. == 判断符号在容器序列中的含义

  • str1 == str2

    1. == 两边的字符串str1str2 必须完全相同,才能返回True,否则返回False
    2. 两个空字符串""是相等的
    3. 空字符串的bool值是False

  • list1 == list2

    1. 列表和字符串一样,也是要求两边的内容完全一样,不但内容一样,顺序也要一样
    2. 空列表的bool结果也是False

  • tuple1 == tuple2

    1. 元组和列表以及字符串的比较规则是一样的
    2. 两个空元组也是相等的
    3. 注意的是元组只有一个元素的时候要加上逗号,,不然就是一个单个元素,不是元组

    在这里插入图片描述

  • set1 == set2

    1. 集合无序,所以两个集合相等就是集合的元素个数和内容相等即可
    2. 空集合只能通过set()创建,注意{} 这是一个空字典

    在这里插入图片描述

  • dict1 == dict2

    字典相等就是对应的键值对相等,对键值对的顺序没有要求

猜你喜欢

转载自blog.csdn.net/Fioman_GYM/article/details/120638767