python小例子(一)

时间:2022-07-23
本文章向大家介绍python小例子(一),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

参考链接:https://zhuanlan.zhihu.com/p/83998758?utm_source=qq&utm_medium=social&utm_oi=728200852833075200

1.判断是否存在重复元素

def all_unique(a):
    return len(a)==len(set(a))
print(all_unique([1,1,2,3]))
输出:False

2.检查两个字符串的组成是否一样,即元素的种类和数目是否一致

def anagram(a,b):
    return Counter(a)==Counter(b)
print(anagram("3abcda","acdba3"))
输出:True

3.内存占用

#32位系统
import sys
variable = 38
print(sys.getsizeof(1))
print(sys.maxsize)
输出:14
     2147483647

4.字节占用

def byte_size(string):
    return len(string.encode("utf-8"))
print(byte_size("hello world"))
输出:11

5.打印N次字符串

print(“a”*3)

输出:aaa

6.大写第一个字母

print("abc".title())

输出:Abc

7.分块

from math import ceil
def chunk(alist,size):
    return list(map(lambda x:alist[x*size:x*size+size],
                    list(range(0,ceil(len(alist)/size)))))
print(chunk([1,2,3,4,5],2))
输出:[[1,2],[3,4],[5]]

8.压缩

使用python filter函数,其一般形式为filter(func,iterable)

例子1:
def is_odd(a):
    return a%2==1
print(list(filter(is_odd,[1,2,3,4,5,6,7,8])))
输出:[1,3,5,7]
例子2:
print(list(filter(bool,[False,None,"",0,3,"a"])))
输出:[3,"a"]

9.解包

a=[['a','b'],['c','d'],['e','f']]
print(*a)
输出:
['a','b'] ['c','d'] ['e','f']
for i in zip(*a):
    print(i)
输出:
('a','c','e')
('b','d','f')

10.链式对比

a=3
print(2<a<4)
输出:True
print(2==a<4)
输出:False

11.列表转字符串(用逗号相隔)

print(",".join(['a','b','c']))
输出:a,b,c

12.元音统计(正则表达式的一种应用)

import re
print(re.findall("[aeiou]","foobar"))
输出:3

13.展开列表

a=[1,[2],[[3],4],5]
def spread(a):
    res=[]
    for i in a:
        if isinstance(i,list):
            res.extend(i)
        else:
            res.append(i)
    return res
def deep_flatten(b):
    result=[]
    result.extend(spread((list(map(lambda x:deep_flatten(x) if type(x)==list else x,b)))))
    return result
print(deep_flatten(a))
输出:[1,2,3,4,5]

14.列表的差(返回第一个列表的元素,不再第二个列表中的)

def diff(a,b):
    set_a=set(a)
    set_b=set(b)
    comparison=set_a.difference(set_b)
    return list(comparison)
print(diff([1,2,3],[1,2,4]))
输出:[3]

15.通过函数取差(如下方法会先应用一个给定的函数,然后再返回应用函数后结果有差别的列表的元素)

import math
def difference_by(a,b,fn):
    b=set(map(math.floor,b))
    return [item for item in a if math.floor(item) not in b]
print(difference_by([1.2,2.1],[2.3,3.4],math.floor))
输出:[1.2]

16.函数的链式调用(可以再一行代码内调用多个函数)

def add(a,b):
    return a+b
def substract(a,b):
    return a-b
a,b=4,5
print((substract if a>b else add)(a,b))
输出:9

17.判断列表是否有重复值

print(len([1,2,2,3]==len(set([1,2,2,3])))
输出:False

18.合并两个字典

def merge_two_dicts(a,b):
    c=a.copy()
    c.update(b)
    return c
print(merge_two_dicts({1:2},{3:4}))
输出:{1:2,3:4}
再pyhton3.5及以上,直接print({**{1:2},**{3:4}})

19.把两个列表转换成字典

def to_dictionary(a,b):
    return dict(zip(a,b))
print(to_dictionary(["a","b"],[1,2]))
输出:{"a":1,"b":2}

20.使用枚举(能够同时取到index和value)

a=["a","b"]
for index,val in enumerate(a):
    print(index,val)
输出:
0 a
1 b

21.执行时间(计算执行特定代码所用的时间)

import time
start_time=time.time()
for i in range(10000):
    print(i)
end_time=time.time()
total_time=end_time-start_time
print(round(total_time,2))
输出:0.17

22.Try else(可以多加一个else,如果没有触发错误,这个子句就会被执行)

try:
    2*3
except TypeError:
    print("An exception")
else:
    print("successful")
输出:successful

23.元素频率(统计出现次数最多的元素)

def most_frequent(a):
    return max(set(a),key=a.count)
print(most_frequent([1,2,2,2,3,3]))
输出:2

24.回文序列(会先将所有字母转换成小写字母,并且移除非英文字母符号)

def palindrome(string):
    from re import sub
    s=sub("[W_]","",string.lower())
    return s==s[::-1]
print(palindrome("taco cat"))
输出:True

25.不使用if else计算子

import operator
action={
    "+":operator.add,
    "-":operator.sub,
    "*":operator.mul,
    "/":operator.truediv,
    "**":pow,
}
print(action["-"](50,25))
输出:25

26.Shuffle(打乱列表排序的顺序)

from copy import deepcopy
from random import randint
def shuffle(a):
    tmp_list=deepcopy(a)
    n=len(tmp_list)
    while n:
        n-=1
        i=randint(0,n)
        tmp_list[n],tmp_list[i]=tmp_list[i],tmp_list[n]
    return tmp_list
print(shuffle([1,2,3]))
输出:[2,3,1](每次结果都不一样)