Python基础

  1. [[#Collections库]]
  2. [[Python星号的作用]]
  3. [[Maketrans映射]]
- Python的三个函数式编程基础的函数:  filter()   、 map()   、 reduce()

- lambda表达式

Python中一切皆对象

python中的函数和类全是对象,可以被存入列表内,可以被当作函数的返回值
例如:
def output01():  
    print(13)  
  
  
def output():  
    print(12)  
    return output01  
  
"""不带括号是赋值变量为函数,带括号是赋值变量返回值"""
Test01 = output()  
Test01()  
  ->  12  13
Test02 = output  
Test02()
  ->  12 

object的基类为type,object是type生成的对象。


魔法函数

魔法函数是用于增加类的功能的。
比如增加__getitem__函数后可以直接获得数组内的值。

Collections库

Python内置的数据类型和方法,collections模块在这些内置类型的基础提供了额外的高性能数据类型,比如基础的字典是不支持顺序的,collections模块的OrderedDict类构建的字典可以支持顺序,collections模块的这些扩展的类用处非常大,熟练掌握该模块,可以大大简化Python代码,提高Python代码逼格和效率。

Counter计数器

  1. 实现列表内数据出现的个数
from collections import Counter  
a = [1, 4, 4, 7, 9]  
print(Counter(a))    -> Counter({4: 2, 1: 1, 7: 1, 9: 1})
# 统计4出现的个数
print(Counter(a)[4]) _> 2_

  1. most_common(n)
    返回一个列表,包含n个最常见的元素和次数。例如:
Counter('abrabcadabra').most_common(3)
[('a', 5), ('b', 2), ('r', 2)]

如果没有输入n 会默认返回计数器中的所有元素。


  1. 生成迭代器 elements()
    小于1的数字迭代器不会理会,本方法无参数
c = Counter(a=4, b=2, c=0, d=-2).elements()  
for i in c:  
    print(i)
    -> a a a a b b

  1. 互相减去元素 subtract()
c = Counter(a=4, b=2, c=0, d=-2)
d = Counter(a=1, b=2, c=3, d=4)
c.subtract(d)

-> Counter({'a': 3, 'b': 0, 'c': -3, 'd': -6})
text = 'I want to have a son.'  
str1 = Counter(text)  
str1.subtract('wa')  # 把对应元素个数减去。
print(str1)
-> Counter({' ': 5, 'a': 2, 'n': 2, 't': 2, 'o': 2, 'I': 1, 'h': 1, 'v': 1, 'e': 1, 's': 1, '.': 1, 'w': 0})

双向队列 deque

  1. append()
    添加x到右端
d = deque('abc')
d.append('d')
print(d)
-> deque(['a','b','c','d'])

  1. appendleft()
    添加x到左端
d.appendleft('z')
print(d)
-> deque(['z','a','b','c'])

  1. clear()
    移除所有元素,使其长度为0

  1. copy()
    创建一份浅拷贝。
d = deque('xiaoweuge')
y = d.copy()
print(y)
deque(['x', 'i', 'a', 'o', 'w', 'e', 'u', 'g', 'e'])

  1. extend()和entendleft()
    与append的区别在于可以添加deque
a = deque('abc')
b = deque('cd')
a.extendleft(b)
a
deque(['d', 'c', 'a', 'b', 'c'])

  1. index( )
    返回 x 在 deque 中的位置, 返回第一个匹配项,如果未找到则引发 ValueError。
d = deque('xiaoweuge')
d.index('w')
4

  1. insert()
    在位置i 插入x
a = deque('abc')
a.insert(1,'X')
deque(['a', 'X', 'b', 'c'])

  1. pop( )和popleft( )
    移去并且返回一个元素, 如果没有元素的话,就引发一个 IndexError。
d.pop()      
'j'

  1. remove( value )
    移除找到的第一个 value。 如果没有的话就引发 ValueError。
a.remove('a')

  1. 逆序排列 reverse( )
    将deque逆序排列。返回 None 。
d = deque('abc')
deque(reversed(d))

  1. 向右循环移动n步 rotate( )
d = deque('ghijkl')
d.rotate(1)                      
d
deque(['l', 'g', 'h', 'i', 'j', 'k'])
# 向左边挤一挤
d.rotate(-1)                     
d
deque(['g', 'h', 'i', 'j', 'k', 'l'])

posted @ 2023-04-27 22:12  钢蛋他爹铁蛋  阅读(28)  评论(0)    收藏  举报