美文网首页
python常见使用操作

python常见使用操作

作者: kegumingxin | 来源:发表于2017-03-11 10:22 被阅读0次
    1. 数组反转:
    • nums[::-1], 比如nums=[1,2,3], 那么nums[::-1]=[3,2,1]
    • nums.reverse()函数也是可以的
    • reverse函数和nums[::-1]区别在于:reverse操作之后nums本身也进行了改变,即nums[::-1] = [3,2,1],而nums=[1,2,3]; 而nums.reverse() = [3,2,1], nums=[3,2,1]
    1. range的使用:
    • range(x,y,z): x:表示起始的标号;y:表示小于该值推出循环;z:表示每次跨越步数
    1. **collections.Counter(): **
    • 对于一个数组nums=[1,2,3,1], 若进行 nmap = collections.Counter(nums),则会得到一个字典:{1:2, 2:1, 3:1}.
    • 使用Counter构建的字典和使用damp={}构架的字典区别在于,Counter的使用即使当时不存在key,也可以执行nmap[key]+=1(它会默认nmap[key]=0),而直接使用字典则会报错
    1. enumerate函数的使用:
    • 比如nums=[3,5,10,2], 那么enumerate(nums)则可以得到key-value对,其中key表示该元素对应的标号,val表示原来数组中的值。 如0:3,1:5等,其中0表示3所在的数组中的位置,3表示该数组的值
    1. python字符串的特性:
    • 'a'*3 = 'aaa';
    • join函数的使用,比如' '.join(nums),如果nums为空则返回空;nums为一个元素,则返回该元素;否则的话,返回nums中每个元素间加上一个空格所构成的字符串
    1. python dict 同一个key 对应多个value:
    • dmap={}
      • dmap.setdefault(val,set()).add(); set 对应是add操作
      • dmap.setdefault(val,[]).append(); list 对应是append操作
      • dmap.setdefault(val,{})[keyin]=[valuein]
    1. 字符串的处理:
    • chr(): 将int数据转位字符型数据,如chr(97)='a';
    • ord(): 将char数据转为int型数据,如ord('a')=97;
    • isalnum() : 字符串操作方法,检测字符串是否由字母和数字组成。如'aba123'.isalnum()=True;'aba,.,123'=False
    1. list基本操作:
    • L.append(val) #追加元素
    • L.insert(index, var) #在某个具体位置加入元素
    • L.pop(var) #返回最后一个元素,并从list中删除之,该方法适用于stack
    • L.remove(var) #删除第一次出现的该元素,如果有重复数据时注意该方法的使用,免得造成数据误删除
    • L.count(var) #该元素在列表中出现的个数
    • L.index(var) #该元素的位置, 无则抛异常
    • L.extend(list) #追加list,即合并list到L上
    • L.sort() #排序,该操作后原数组的也会发生变化
    • L.reverse() #倒序 原数组不会发生变化
    1. tuple的神奇之处:
    • python中list、dict是不可以作为key值的进行hash的,而python中的tuple是可以进行hash的!!该操作在某些字符串处理中有很大的作用!
    • tuple([2,1,4,5,1]) = (2,1,4,5,1)
    1. heapq模块:
      处理topN问题时经常要使用到堆这种数据结构。c++中有大(小)顶堆,而在python 中就要使用heapq模块来实现相同的操作。在python中可以将堆看成一种特殊结构的列表,该列表具备堆的性质。heapq有如下常见操作:import heapq as hq
      heapq官方文档及说明
    • heappush(): hq.heappush(heap,value), 将value压入堆数组heap中,从而构建堆结构(默认最小顶堆)
    • heappop(): hq.heappop(heap), 从heap堆中删除最小的值,并返回
    • heapify():hq.heapify(list), 该操作将list类型转位最小顶堆,注意一定要是list类型才能转换
    • heap.nlargest(k, list)以及heap.nsmallest(k, list): 从名字上可知,两个函数分别获去堆的前k大以及前k小元素。即输入一个list类型先转换为堆,从而获取topN的元素。
    • heap.merge(iterables):* heapq模块提供的归并操作
    >>> a=[1,3,5]         
    >>> b=[2,4,6]
    >>> c=merge(a,b)
    >>> list(c)
    [1, 2, 3, 4, 5, 6]
    
    • heapq.heappushpop(heap, item)以及heapq.heapreplace(heap, item): 上述两个函数将push和pop操作合并一起,前者先进行push然后再pop,后者先进行pop然后再进行push操作。注意:如果heapreplace对于空列表操作会报错
    1. bisect模块:
      bisect模块使用时要保证列表已经是有序的。
    • insort函数:bisect.insort(data,value),将value插入到已有列表data中,插入结果不会影响原来的排序
    • bisect函数:bisect.bisect(data,value),该函数的目的在于返回value需要插入到data列表中的位置并返回,但是不会执行插入操作。
    • bisect_left函数和bisect_right函数:与bisect函数的功能一样,但是这两个函数用来处理有重复值的情况,left表明返回重复值左边的位置,right反之
    • insort_left函数和insort_right函数:与insort函数功能一样,但是是用来处理重复值情况,left表明插入到重复值左边,right则反之。

    相关文章

      网友评论

          本文标题:python常见使用操作

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