python

作者: yl_9804 | 来源:发表于2020-04-01 22:48 被阅读0次

    一、apply&applymap&map

    • apply 用在dataframe上,用于对row或者column进行计算;
    • applymap 用于dataframe上,是元素级别的操作;
    • map (其实是python自带的)用于series上,是元素级别的操作。
      f = lambda x: x.max() - x.min()lambda,临时函数
      df.apply(f,axis=0)axis决定作用的维度,axis=1作用在一行上,axis=0作用在一列上,默认axis=0
      f2 = lambda x: x+1 if x%2==0 else x
      df.applymap(f2)
      def sq(x): return x**2 m=map(sq,df['id'])
      list(m)
      list(m)
      map只返回一个迭代器,第一次list(m)后会把其中的值展示出来,但第二次list(m)之后就是空的了

    二、type//dtypes//astype
    type(a) 自带,返回变量的数据类型,如果a是dataframe就返回dataframe
    b.dtypes 返回数组中元素的数据类型,对于dataframe是每一列的数据类型
    a.astype(int) 更改数据类型,比如浮点改为int,或者用简单的方法更改:

    • int():将一个数值或字符串转换成整数,可以指定进制;
      float():将一个字符串转换成浮点数;
      str():将指定的对象转换成字符串形式,可以指定编码;
      chr():将整数转换成该编码对应的字符串(一个字符);
      ord():将字符串(一个字符)转换成对应的编码(整数)。

    三、占位符&循环&倒置&排序

    • %d整数,%f小数,%%表示百分号,%s 字符串
      print('%d / %d = %.2f' % (a, b, a / b))%.2f保留两位有效函数
      d=str(input('d = ')) print('my name is %s' %(d))

    \代表拆行
    break:终止循环
    continue:放弃本轮循环,开始新一轮循环
    print(,end='')print函数,默认end='\n'换行符

    字符串/list倒置
    b = 123456
    c = list(str(b))
    c.reverse()

    排序函数:
    sorted(iterable[,cmp[,key[,reverse]]])
    rt = sorted(example_list, key=lambda x: x*-1)
    list.sort(L, key=None, reverse=False)
    其中sorted函数的参数含义如下:

    • iterable -- 可迭代对象。
    • cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
    • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
    • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)
      sort函数的参数含义:L代表要排序,key代表的是用于排序的比较元素,reverse同上面一致。
      总体来看,sort只能用于列表的排序,效率也更快,消耗的内存较小,而且是直接对列表进行操作,所以会改变列表的原始值。而sorted函数的可以应用于各种数据结构,范围更加广泛,不过它会调用一个新的数据结构来进行操作,不会更改原数据,所以效率会略低一点。

    四、字符串

    • + 字符串的拼接;
    • * 重复;
    • in,not in 判断一个字符串是否包含另外一个字符串,
      print('eo' in 'hello')False,不连续的
    • []截取,[::-1],倒序,[::2],间隔取
    • str1='abc123456'
      print(str1.find('bc'))返回首次出现的位置
      print(str1.find('bd'))返回-1,代表不存在
      str.rfind(str1,begin_pos,end_pos)返回指定字符串最后一次出现的位置
      print(str1.index('bd'))报错
      str.count('substr')统计字符出现的次数
      print(str1.center(50, '*')),将字符串居中,左右用*填充
      str.strip() 清除字符串左右两侧的空格,但中间的空格清除不了
    • 格式化输出除了占位符之外的另外两种方法:
      a, b = 5, 10
      print('{0} * {1} = {2}'.format(a, b, a * b))
      print(f'{a} * {b} = {a * b}')

    五、列表
    list1=[1,2,3,4]
    enumerate函数

    • for index, elem in enumerate(list1):
      ····print(index, elem)

    • 添加元素:
      list1.append(2)末尾添加2
      list1.append(2,3)不行,一次只能添加一个
      list1.append([2,3]),末尾添加一个元素[2,3],变成[1,2,3,4,[2,3]]
      ///list1.insert(1,400)前面依次插入两个元素,一个数占一个位置[1,400,1,2,3,4]但3.7版本使用方式变了:
      list.insert(position,x)第一个参数是插入的位置,第二个参数是插入的元素,list1.insert(1,[2,3])=[1,[2,3],3,4]

    • 删除元素
      list1=[1,2,3,4,1,2,3]
      list1.remove(2)得到[1,3,4,1,2,3]只删除第一个遇到的元素
      list1.pop(position)按照位置删除元素

    • 切片
      所有切片都是包左不包右,[-3:-1]不能提取最后一个元素;

    • 生成式语法
      f=[x + y for x in 'ABCDE' for y in '1234567']x+y:两个字符拼接,后面等同于:
      f=[]
      for x in 'ABCDE':
      ····for y in '1234567':
      ········f.append(x+y)
      f1=(x**2 for x in range(1,1000))生成器
      f=[x**2 for x in range(1,1000)]list
      生成器的内存占用远远小于list(sys.getsizeof()查看内存)
      通过yield将普通函数改造成生成器
      def fib(n):
      ····a, b = 0, 1
      ····for _ in range(n):
      ········a, b = b, a + b
      ········yield a
      def main():
      ····for val in fib(20):
      ········print(val)
      if __name__ == '__main__':
      ····main()
      只运行fib函数的话,返回的是一个生成器

    六、集合

    • 没有重复元素
      set1={1,2,3,4,5,1}
      print(set1) >>{1,2,3,4,5}
      set2=set( (1,2,4,3,2,1))or set2=set( [1,2,4,3,2,1])
    • 元素的增减
      set1.add()
      set1.update([]) or set1.update(()) 作用等同于add,
      set1.update(9)不行,
      set3=set([1,2,[1,2],[3,4]]) !!!unhashable type: 'list'
      set1.discard(5) & set1.remove(5) 删除元素
      set1.pop()返回的是被删除的在第一位的元素,之后的set1没了一个元素
    • 运算
      交集:&
      并集:|
      差集:-
      或否:^ ,返回只存在于一个集合之中的元素的集合
      判断子集和超集
      print(set2 <= set1),print(set2.issubset(set1))
      print(set1 >= set2),print(set1.issuperset(set2))
    • !!!对python而言
      其一, 在不加括号时候, and优先级大于or
      其二, x or y 的值只可能是x或y. x为真就是x, x为假就是y
      第三, x and y 的值只可能是x或y. x为真就是y, x为假就是x

    七、字典
    key:value
    dict.keys()返回key的列表

    • 构造字典的方法:
      1)dict={key:value,...}
      2) dict2=dict(key=value,...),如item=dict(one=1,two=2)其中key不能加引号
      3)zip函数items2 = dict(zip(['a', 'b', 'c'], '123'))
      4)推导式item3={num:num*2 for num in range(0,10)}
    • 更改字典的值
      1)dict.update(key=value,...)可以修改现有key对应的value,也可以添加新的key-value对
      2)items2.popitem()返回被删除的最后一个位置的元素
      3)items.pop(key1,key2...)按key删除,返回被删除的values值
      4)dict.clear()清空
    • 返回最大值对应的key:max(items2,key=items2.get)

    相关文章

      网友评论

          本文标题:python

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