数字类型9159.com,只有有一个为false则返回false

作者: 编程  发布:2019-08-31

python学习日记:day16-------内置函数与匿名函数,pythonday16-------

一、内置函数

1,数据类型:int,bool ..........

2,数据结构:dict,list,tuple,set,str 

3,reversed--保留原列表,返回一个反序的迭代器 

reversed()
l =[1,2,3,4,5]
l2 =reversed(l)
print(l2)

 

4,slice切片 

l =(1,2,23,213,5612,234,43)
sli =slice(1,5,2)
print(l[sli])

#(2,213)

5,format 

print(format('test', '<20'))
print(format('test', '>40'))
print(format('test', '^40'))

6,bytes

#bytes 转换成bytes类型
# 我拿到的是gbk编码的,我想转成utf-8编码
# print(bytes('你好',encoding='GBK'))     # unicode转换成GBK的bytes
# print(bytes('你好',encoding='utf-8'))   # unicode转换成utf-8的bytes
7,bytearray

b_array = bytearray('你好',encoding='utf-8')
print(b_array)
print(b_array[0])

7,zip 

l = [1,2,3,4,5]
l2 = ['a','b','c','d']
l3 = ('*','**',[1,2])
d = {'k1':1,'k2':2}
for i in zip(l,l2,l3,d):
    print(i)

8,all

只有有一个为false则返回false

9,any

只要有一个为True则为True

10,filter

执行了filter之后的结果集合一定是《= 执行之前的个数 

#filter只管筛选,不会改变原来的值 

11,map

#执行前后元素的个数不变,值可能发生改 

12,sorted

#用c语言编写。 数据少、短、且要保留原来的列表 二、匿名函数

def add(x,y):
    return x y

转换成匿名函数为:

add = lambda x,y:x y
print(add(1,2))

1,找出value值最大的key

dic={'k1':10,'k2':100,'k3':30}
def func(key):
    return dic[key]
print(max(dic,key=func))   #根据返回值判断最大值,返回值最大的那个参数是结果
print(max(dic,key=lambda key:dic[key]))
max([1,2,3,4,5,-6,-7],key=abs)

2,说出代码的最终结果

d = lambda p:p*2
t = lambda p:p*3
x = 2
x = d(x) #x = 4
x = t(x) #x = 12
x = d(x) #x = 24
print(x)
#--->24

3、

#现有两元组(('a'),('b')),(('c'),('d')),
# 请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]

ret = zip((('a'),('b')),(('c'),('d')))
ret = map(lambda t:{t[0]:t[1]},ret)
print(list(ret))

4,以下代码的输出是什么?请给出答案并解释。
def multipliers():
    return [lambda x:i*x for i in range(4)]
print([m(2) for m in multipliers()])
请修改multipliers的定义来产生期望的结果。

def multipliers():
    return (lambda x:i*x for i in range(4))#改为生成器
print([m(2) for m in multipliers()])

 

 

 

一、内置函数 1,数据类型:int,bool .......... 2,数据结构:dict,list,tuple,set...

一、内置函数

一、内置函数

1)基础数据类型相关

1,数据类型:int,bool ..........

1,数据类型:int,bool ..........

和数据结构相关

2,数据结构:dict,list,tuple,set,str 

2,数据结构:dict,list,tuple,set,str 

序列:

1.列表和元组

列表:list

元组:tuple

 

2.相关内置函数

reversed:

9159.com 1

reversed()
l = [1,2,3,4,5]
l.reverse()
print(l)
l = [1,2,3,4,5]
l2 = reversed(l)
print(l2)
保留原列表,返回一个反向的迭代器

9159.com 2

slice:

9159.com 3

 

l = (1,2,23,213,5612,342,43)
sli = slice(1,5,2)
print(l[sli])
print(l[1:5:2])

3.字符串

9159.com,str:

数字类型

format:

print(format('test', '<20'))
print(format('test', '>40'))
print(format('test', '^40'))

bytes:

bytes 转换成bytes类型
我拿到的是gbk编码的,我想转成utf-8编码
print(bytes('你好',encoding='GBK'))     # unicode转换成GBK的bytes
print(bytes('你好',encoding='utf-8'))   # unicode转换成utf-8的bytes

bytearry:

9159.com 4

网络编程 只能传二进制
照片和视频也是以二进制存储
html网页爬取到的也是编码
b_array = bytearray('你好',encoding='utf-8')
print(b_array)
print(b_array[0])
'xe4xbdxa0xe5xa5xbd'
s1 = 'alexa'
s2 = 'alexb'

9159.com 5

memoryview:

ord:

字符按照unicode转数字

print(ord('好'))
print(ord('1'))
结果:22909
         49  

chr:

数字按照unicode转字符

print(chr(97))
结果:a

ascii:

只要是ascii码中的内容,就打印出来,不是就转换成u

print(ascii('好'))
print(ascii('1'))
结果:a
        'u597d'
        '1'  

repr:

用于%r格式化输出

name = 'egg'
print('你好%r'%name)
print(repr('1'))
print(repr(1))

3,reversed--保留原列表,返回一个反序的迭代器 

3,reversed--保留原列表,返回一个反序的迭代器 

数据集合

1.字典:

dict

2.集合:

set:无序排序且不重复,是可变的。

frozenset:是冻结的集合,他是不可变的,存在哈希值。

 

reversed()
l =[1,2,3,4,5]
l2 =reversed(l)
print(l2)
reversed()
l =[1,2,3,4,5]
l2 =reversed(l)
print(l2)

相关内置函数

len:长度

sorted:排序,可以定义。

9159.com 6

列表按照其中每一个值的绝对值排序
l1 = [1,3,5,-2,-4,-6]
l2 = sorted(l1,key=abs)
print(l1)
print(l2)

列表按照每一个元素的len排序
l = [[1,2],[3,4,5,6],(7,),'123']
print(sorted(l,key=len))

9159.com 7

enumerate:枚举

all:只要有一个空的就返回False,全部不为空就返回True。

9159.com 8

print(all(['a','',123]))
print(all(['a',123]))
print(all([0,123]))
结果:False
    True
    False

9159.com 9

any:只要有一个为真就返回True。

print(any(['',True,0,[]]))
结果:True

zip:拉链函数

9159.com 10

l = [1,2,3,4,5]
l2 = ['a','b','c','d']
l3 = ('*','**',[1,2])
d = {'k1':1,'k2':2}
for i in zip(l,l2,l3,d):
    print(i)

9159.com 11

filter:

 执行了filter之后的结果集合 <= 执行之前的个数

filter只管筛选,不会改变原来的值

map:

执行前后元素个数不变

值可能发生改变

 

 

 

二、匿名函数

匿名函数:为了解决那些功能很简单的需求而设计的一句话函数

9159.com 12

#这段代码
def calc(n):
    return n**n
print(calc(10))

#换成匿名函数
calc = lambda n:n**n
print(calc(10))

9159.com 13

函数名 = lambda 参数 :返回值

#参数可以有多个,用逗号隔开
#匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
#返回值和正常的函数一样可以是任意数据类型

注:max min sorted filter map 只有这五个函数才能使用匿名函数。

9159.com 14

4,slice切片 

4,slice切片 

l =(1,2,23,213,5612,234,43)
sli =slice(1,5,2)
print(l[sli])
l =(1,2,23,213,5612,234,43)
sli =slice(1,5,2)
print(l[sli])

#(2,213)

#(2,213)

5,format 

5,format 

print(format('test', '<20'))
print(format('test', '>40'))
print(format('test', '^40'))
print(format('test', '<20'))
print(format('test', '>40'))
print(format('test', '^40'))

6,bytes

6,bytes

#bytes 转换成bytes类型
# 我拿到的是gbk编码的,我想转成utf-8编码
# print(bytes('你好',encoding='GBK'))     # unicode转换成GBK的bytes
# print(bytes('你好',encoding='utf-8'))   # unicode转换成utf-8的bytes
7,bytearray

b_array = bytearray('你好',encoding='utf-8')
print(b_array)
print(b_array[0])

7,zip 

l = [1,2,3,4,5]
l2 = ['a','b','c','d']
l3 = ('*','**',[1,2])
d = {'k1':1,'k2':2}
for i in zip(l,l2,l3,d):
    print(i)
#bytes 转换成bytes类型
# 我拿到的是gbk编码的,我想转成utf-8编码
# print(bytes('你好',encoding='GBK'))     # unicode转换成GBK的bytes
# print(bytes('你好',encoding='utf-8'))   # unicode转换成utf-8的bytes
7,bytearray

b_array = bytearray('你好',encoding='utf-8')
print(b_array)
print(b_array[0])

7,zip 

l = [1,2,3,4,5]
l2 = ['a','b','c','d']
l3 = ('*','**',[1,2])
d = {'k1':1,'k2':2}
for i in zip(l,l2,l3,d):
    print(i)

8,all

8,all

只有有一个为false则返回false

只有有一个为false则返回false

9,any

9,any

只要有一个为True则为True

只要有一个为True则为True

10,filter

10,filter

执行了filter之后的结果集合一定是《= 执行之前的个数 

执行了filter之后的结果集合一定是《= 执行之前的个数 

#filter只管筛选,不会改变原来的值 

#filter只管筛选,不会改变原来的值 

11,map

11,map

#执行前后元素的个数不变,值可能发生改 

#执行前后元素的个数不变,值可能发生改 

12,sorted

12,sorted

#用c语言编写。

#用c语言编写。

数据少、短、且要保留原来的列表

数据少、短、且要保留原来的列表

二、匿名函数

二、匿名函数

def add(x,y):
    return x y
def add(x,y):
    return x y

转换成匿名函数为:

转换成匿名函数为:

add = lambda x,y:x y
print(add(1,2))
add = lambda x,y:x y
print(add(1,2))

1,找出value值最大的key

1,找出value值最大的key

dic={'k1':10,'k2':100,'k3':30}
def func(key):
    return dic[key]
print(max(dic,key=func))   #根据返回值判断最大值,返回值最大的那个参数是结果
print(max(dic,key=lambda key:dic[key]))
max([1,2,3,4,5,-6,-7],key=abs)
dic={'k1':10,'k2':100,'k3':30}
def func(key):
    return dic[key]
print(max(dic,key=func))   #根据返回值判断最大值,返回值最大的那个参数是结果
print(max(dic,key=lambda key:dic[key]))
max([1,2,3,4,5,-6,-7],key=abs)

2,说出代码的最终结果

2,说出代码的最终结果

d = lambda p:p*2
t = lambda p:p*3
x = 2
x = d(x) #x = 4
x = t(x) #x = 12
x = d(x) #x = 24
print(x)
#--->24
d = lambda p:p*2
t = lambda p:p*3
x = 2
x = d(x) #x = 4
x = t(x) #x = 12
x = d(x) #x = 24
print(x)
#--->24

3、

3、

#现有两元组(('a'),('b')),(('c'),('d')),
# 请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]

ret = zip((('a'),('b')),(('c'),('d')))
ret = map(lambda t:{t[0]:t[1]},ret)
print(list(ret))

4,以下代码的输出是什么?请给出答案并解释。
def multipliers():
    return [lambda x:i*x for i in range(4)]
print([m(2) for m in multipliers()])
请修改multipliers的定义来产生期望的结果。

def multipliers():
    return (lambda x:i*x for i in range(4))#改为生成器
print([m(2) for m in multipliers()])
#现有两元组(('a'),('b')),(('c'),('d')),
# 请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]

ret = zip((('a'),('b')),(('c'),('d')))
ret = map(lambda t:{t[0]:t[1]},ret)
print(list(ret))

4,以下代码的输出是什么?请给出答案并解释。
def multipliers():
    return [lambda x:i*x for i in range(4)]
print([m(2) for m in multipliers()])
请修改multipliers的定义来产生期望的结果。

def multipliers():
    return (lambda x:i*x for i in range(4))#改为生成器
print([m(2) for m in multipliers()])

 

 

 

 

 
 

本文由9159.com发布于编程,转载请注明出处:数字类型9159.com,只有有一个为false则返回false

关键词: 9159.com