Python

输入多个列表alist和blist,要求列表中的每一个成分都为正整数且不超过10;合併alist和blist,并将五个列表相互重复的成分去掉后输出三个新的列表clist。

a=[1,2,3,4,5,6,7]b=filter(lambda x:x>5, a)print b[6,7]假使filter参数值为None,就动用identity()函数,list参数中存有为假的成分都将被剔除。如下所示:a=[0,1,2,3,4,5,6,7]b=filterprint b[1,2,3,4,5,6,7]map的五个参数一个是函数名,另三个是列表或元组。map(lambda x:x+3, a卡塔尔国 #这里的a同上[3,4,5,6,7,8,9,10] #另多少个事例a=[1,2,3] >>>b=[4,5,6]map(lambda x,y:x+y, a,b)[5,7,9]在刷题的进程中,map(卡塔尔函数平常能够构成输入一同使用,举例在黄金时代行中输入3个整数,可用如下语句:a,b,c = map(int, input)reduce(卡塔尔函数reduce(卡塔尔(英语:State of Qatar)函数接受的参数和 map(卡塔尔相近,叁个函数 f,三个list,但行为和 map(卡塔尔分歧,reduce(卡塔尔传入的函数 f 必需选取八个参数,reduce(卡塔尔国对list的种种成分屡屡调用函数f,并再次回到最终结出值。比如,编写三个f函数,接受x和y,重回x和y的和:def f:return x + y调用 reduce(f, [1, 3, 5, 7, 9]卡塔尔时,reduce函数将做如下总结:先总结头五个要素:f,结果为4;再把结果和首个成分总括:f,结果为9;再把结果和第二个因素总括:f,结果为16;再把结果和第5个要素总括:f,结果为25;由于并未有更加的多的成分了,总计结束,再次回到结果25。

  • 整除 3//2

  • 数字转字符串 str(number卡塔尔(英语:State of Qatar),字符串转数字 int(str卡塔尔(قطر‎

  • 字符串全数办法不改过字符串本人 .title(卡塔尔(قطر‎ .upper(卡塔尔 .lower(卡塔尔(英语:State of Qatar).strip(卡塔尔/.lstrip(卡塔尔国/.rstrip(卡塔尔(قطر‎ .split(卡塔尔(英语:State of Qatar)

  • 列表方法校勘列表本人 .append(卡塔尔(قطر‎ .insert(ind,val卡塔尔(قطر‎ del list[index]/.pop(可选index) /.remove(element) .sort(可选 key = lambda x: x[1], 可选reverse=True卡塔尔(英语:State of Qatar)(key能够钦点按照列表第几维排序,reverse= True能够钦点从大到小排序) .reverse(卡塔尔国

  • 列表方法不修正列表本人 sorted(卡塔尔(英语:State of Qatar) len(卡塔尔(英语:State of Qatar) min(卡塔尔(英语:State of Qatar) max(卡塔尔(قطر‎ sum(卡塔尔(قطر‎

  • 列表循环 for val in list:

  • 创设数字列表 list(range(1,6,2卡塔尔卡塔尔 # [1,3,5]

  • 列表深入分析 list=[condition for val in list]

  • 复制列表的科学做法是采取切成片 lista=listb[:],而不是间接复制

  • 反省特定值是不是在列表中 val (not卡塔尔(英语:State of Qatar) in list:,重临bool

  • Python中的逻辑操作符为 and or 和 not,并非 && || 和 !

  • 准则语句:if-elif-else

  • 字典遍历 for key,val in dic.items(卡塔尔(英语:State of Qatar):,遍历全部键 for key in,dic.keys(卡塔尔(英语:State of Qatar):,遍历全体值 for val in dic.values(卡塔尔:,判定键值是还是不是留存 if key (not卡塔尔(قطر‎ in dic:,依据键获得值 dic.get(key卡塔尔国

  • 集合 set 的方法 a = set((1,1,2,3)); a.add(4) # 自动去重 1,2,3,4; b = set((1,2,3卡塔尔卡塔尔(قطر‎; b.remove(3卡塔尔 # 1,2; 七个汇聚的交、并、差分别用 & | - 表示; 判定集合成分是或不是存在 if ele in set: # 该方法的光阴复杂度为 O(1卡塔尔国

  • input(提醒语卡塔尔国将全部输入视为字符串,倘使输入数字必得选拔int(卡塔尔(قطر‎转变,如 age=input(卡塔尔, age=int(age卡塔尔(قطر‎

  • 概念函数 def func(卡塔尔(قطر‎: ,return 可重返自便档案的次序,函数中改进传入的列表参数是永世性的,假诺不想在函数中期维改革列表,能够流传列表的切成丝情势,如 func(list[:])

  • 传递大肆数量实参: func(*ele卡塔尔(英语:State of Qatar),全体ele组合成多少个tuple

  • 传送任性数量的要紧字('a'='b'卡塔尔实参:func(**keyval卡塔尔(قطر‎,全数keyval组合成贰个字典

  • 选拔as能够给导入的模块(Python文件卡塔尔或模块中的函数(文件中的函数卡塔尔(قطر‎重命名,如 from numpy import random as rand

  • 防止接受 from numpy import *这种,尽量利用import numpy as np; np.random(卡塔尔(قطر‎可能 from numpy import random; random(卡塔尔(قطر‎

  • 定义类 class name():

  • 概念子类 class sub_name(sup_name):,且父类 sup_class必需在前面定义。假使子类要一而再父类全数属性,则须求在子类的def _ _init() _ _(self, ...卡塔尔(قطر‎中开头化父类属性super(卡塔尔(قطر‎. _ _init() _ _(...)

  • 导入模块中的类并成立实例 from car import Car, Battery; my_car = Car(...)

  • 文件读写: with open(文件, 'r'/'w'/'r+'/'a'卡塔尔国 as file; file.read(卡塔尔(قطر‎ / file.write(str卡塔尔 / file.readlines(卡塔尔(قطر‎

  • 优质处理:try: 表明式; except ZeroDivisionError: print(错误卡塔尔(英语:State of Qatar); else: print(正确卡塔尔

  • 字符转变为数字:ord(ch卡塔尔(英语:State of Qatar),数字转变为字符ASCLL:chr(number卡塔尔

  • Python中所能表示的最大/最小的数: float("inf"卡塔尔国 / float("-inf"卡塔尔国

  • Python的映射(map卡塔尔(قطر‎合并(reduce卡塔尔(قطر‎函数用法: from functools import reduce; list(map(lambda x: x*2, [1,2,3])) # [2,4,6] ; reduce(lambda x,y:x+y, [1,2,3]) # 6

  • 不得以向来校勘字符串中的字符,因为字符串是不可变对象。要是想要改善,能够用str.replace('a','b')只怕将字符串转变为可变对象 str = list(str卡塔尔(قطر‎,再恐怕选择切成条的方法

  • 字典根据key/value找到最大值/最小值,可能排序: max(dic.keys(卡塔尔 / dic.values(卡塔尔国卡塔尔 ;min(dic.keys(卡塔尔 / dic.values(卡塔尔(英语:State of Qatar)卡塔尔(英语:State of Qatar) ; sorted(dic.keys()/ dic.values(卡塔尔(قطر‎卡塔尔(英语:State of Qatar) # 重回三个list;假使想要将键和值都重临,应该使用 sorted(dic.items(卡塔尔(英语:State of Qatar), key=lambda x :x[0]/x[1]) # 再次回到叁个list,每一种元素是多个tuple,即 [(键,值), (键,值), ...]

  • collections模块有多个有效的零构件:deque(卡塔尔(英语:State of Qatar) 和 defaultdict(int/str/list/set...卡塔尔(قطر‎,deque(卡塔尔国 是双向队列,协助 popleft(卡塔尔国/ pop(卡塔尔(قطر‎ 和 appendleft(卡塔尔(英语:State of Qatar) / append(卡塔尔,defaultdict(...卡塔尔(英语:State of Qatar)是暗许字典,当键空中楼阁时重返参数类型的暗中同意值(如 int 类型重返0),而不像dict当键不设不经常重回keyError

  • www.402.com,random模块中有私行数组件:random(卡塔尔国 # 0 <= n < 1 的浮点数;uniform(a,b卡塔尔国 # a <= n <= b 的浮点数(a>b也足以, b <= n <= a);randint(a,b卡塔尔国 # a <= n <= b的整数;shuffle(list) # 将list打乱,会转移该list;sample(list, n卡塔尔(英语:State of Qatar) # 将 list 的前 n 个因素打乱,重返一个新 list,不会修改原本的 list

  • 二维列表(m行n列)开始化(全0)的不易方法:dim2 = [[0 for col in range(n)] for row in range(m)],或者 [[0] * n for row in range(m)],千万不要用 [[0] * n] * m 的错误方法(乘以 m 相当于把对象的援引复制了m次,假使改造二维列表中的叁个因素,则该列的具有因素都会被改正)。

sorted(key)

www.402.com 1

Paste_Image.png

  • operator模块有itemgetter,attrgetter
    from operator import itemgetter, attrgetter
    sorted(student_tuples, key=itemgetter(2))
    [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
    sorted(student_objects, key=attrgetter('age'))
    [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

  • operator模块还允多数级的排序,举例,先以grade,然后再以age来排序:
    复制代码代码如下:
    sorted(student_tuples, key=itemgetter(1,2))
    [('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]
    sorted(student_objects, key=attrgetter('grade', 'age'))
    [('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]

  • list.sort(卡塔尔(英语:State of Qatar)和sorted(卡塔尔(英语:State of Qatar)都领受三个参数reverse(True or False)来代表升序或降序排序。举个例子对上面的student降序排序如下:
    sorted(student_tuples, key=itemgetter(2), reverse=True)
    [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
    sorted(student_objects, key=attrgetter('age'), reverse=True)
    [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]

从python2.2初步,排序被保障为平安的。意思是说四个成分假使有后生可畏致的key,则排序前后他们的前后相继顺序不变。

Python根基练习题25:合并八个列表并去重

lambda表明式是起到三个函数速写的成效。允许在代码内放置一个函数的概念。它只是二个表达式,函数体比def轻便超级多。3个数求和的例子:

collections.deque()

www.402.com 2

image.png

输入格式:

[1, 2, 3, 4, 5]而利用sorted(卡塔尔(قطر‎方法排序时会重临叁个新的list:my_list = [3, 5, 1, 4, 2]result = sorted #归来二个新的listprint result

正Infiniti与负无穷

float('inf), float('-inf')

注:本文全体代码均通过Python 3.7实在运作查看,有限帮助其严俊性。

lambda表达式

For-Else 循环

https://segmentfault.com/a/1190000004903355
for循环若是是例行退出,才会施行else, 假诺是因为break退出,就不会施行else

解答:消亡的思绪是,先在里面一个列表中去重七个列表共有的成分,再把多少个列表归拢到三个列表个中,并列排在一条线序就可以。

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}d['Michael'] 95笔者在刷题的时候,遭遇三个主题材料正是亟需在循环中动态往dict增多数据,不过还未有找到增添的函数,其实不用插入函数,循环中动态往dict增添数据也很简单,如下所示:dt = {} #先定义二个字典,注意是{},尽管定义数组是[]for i in range:dt[key[i]] = value[i]sort与sorted的排序难点

早先化二维数组

res = [[0 for i in range(n)] for i in range(n)]

共风华正茂行,为壹个列表。

range # 从 0 开始到 10 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]range # 从 1 开始到 11 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]range # 步长为 5 [0, 5, 10, 15, 20, 25]range # 步长为 3 [0, 3, 6, 9]range(0, -10, -1) # 负数 [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]range []range []

str.replace()

Python replace(卡塔尔(英语:State of Qatar) 方法把字符串中的 old(旧字符串) 替换成new(新字符串卡塔尔(英语:State of Qatar),假如钦赐第八个参数max,则替换不当先 max 次。
str.replace(old, new[, max])

何况为保证输出结果生机勃勃致,请将集聚内成分排序之后再出口。如对于列表alist,可输出sorted(alist卡塔尔国。

range(卡塔尔 函数可创设三个整数列表,日常用在 for 循环中。语法如下:range(start, stop, step卡塔尔(英语:State of Qatar)实例:

zfill()

python中有叁个zfill方法用来给字符串前边补0,特别常有效

n = "123"
s = n.zfill(5)
assert s == "00123"

zfill(卡塔尔(قطر‎也得以给负数补0

n = "-123"
s = n.zfill(5)
assert s == "-0123"

对于纯数字,大家也得以经过格式化的不二秘技来补0

n = 123
s = "%05d" % n
assert s == "00123"

共两行,每后生可畏行都用于输入列表中的成分值,以空格隔开分离。

Wechat民众号:轮子工厂,机器学习 | 数据布局与算法 | 源码解析 | 能源与工具分享

int('110', 2)

将以2进制表示的110转换为整数十进制,6