Python学习笔记(12)内置函数

一、强制类型转换

# int
print("强制转换为整型:",int(12.01))
# str
print("强制转换为字符串:",str(19.29))
# list
print("强制转换为list列表:",list((1,2,3,4)))
# set
print("强制转换为set集合:",set((1,2,3,4,2)))
# dict
print("强制转换为字典:",dict(a = 1,b = 2))#  可以传入键值对创建字典。
print("强制转换为字典",dict(zip(['a','b'],[1,2]))) # 可以传入映射函数创建字典。)
print("强制转换为字典",dict((('a',1),('b',2)))) #可以传入可迭代对象创建字典
# tuple
print("强制转换为tuple元组",tuple('121')) #传入可迭代对象。使用其元素创建新的元组
# bool
print(bool('abc')) #返回非空,非0,非None等即为True

  返回结果:

强制转换为整型: 12
强制转换为字符串: 19.29
强制转换为list列表: [1, 2, 3, 4]
强制转换为set集合: {1, 2, 3, 4}
强制转换为字典: {'a': 1, 'b': 2}
强制转换为字典 {'a': 1, 'b': 2}
强制转换为字典 {'a': 1, 'b': 2}
强制转换为tuple元组 ('1', '2', '1')
True

  

二、序列操作

print(all(['1','2','3',0]))#判断可迭代对象的每个元素是否都为True值,结果返回False
print(any([0, '', False]))  # 判断可迭代的对象里面的值是否有一个为真,结果返回False
print(bin(10))  # 十进制转二进制
print(chr(33))  # 打印数字对应的ascii
print(ord('b'))  # 打印字符串对应的ascii码

  返回结果:

False
False
0b1010
!
98

  

三、进制转换与局部/全局变量

s=''
print(dir(s))  # 打印传入对象的可调用方法
print(hex(111))  # 数字转成16进制
print(oct(111))  # 把数字转换成8进制
def func():
    name ='abc'
    age = 18
    # {'name':'abc','age':18}
    print(locals())  # 返回局部变量,返回的是一个字典
func()
# name = '123'
print(globals())  # 返回程序内所有的全局变量,返回的是一个字典

  返回结果:

['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
0x6f
0o157
{'name': 'abc', 'age': 18}
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000023CC3F20910>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'C:/Users/13457/Desktop/besttest作业与源码/day4/内置函数.py', '__cached__': None, 's': '', 'func': <function func at 0x0000023CC40CCAF0>}

  

四、数据运算

print(max([1,5,9,111,324]))  # 取最大值
print(min([1,5,9,111,324]))  # 取最小值
print(sum([1,5,9,111,324]))  #求和
print(divmod(10,3))#取余,返回一个元组,数据:(商,余数)
print(round(11.1111111111, 2))  # 取几位小数
print(list(zip([1,2,3],['t','r','e'])))#把两个list和成一个二维数组(单个元素为元组),需要强转为list

  返回结果:

324
1
450
(3, 1)
11.11
[(1, 't'), (2, 'r'), (3, 'e')]

  

五、复杂点的函数

  1、sorted()函数

  实例1:

print(sorted([2, 31, 34, 6, 1, 23, 4])) # 排序
print(sorted([2, 31, 34, 6, 1, 23, 4],reverse=True))  # 排序后反转list

  返回结果:

[1, 2, 4, 6, 23, 31, 34]
[34, 31, 23, 6, 4, 2, 1]

  实例2:对三维数组通过特定值来排序

# sorted 语法:
#
# sorted(iterable, cmp=None, key=None, reverse=False)
# 参数说明:
#
# iterable -- 可迭代对象。
# cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
# key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
# reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
l = [
    ('小名',5,['xx',11]),
    ['xiaohei',19,['xx',13]],
    ['xiaobai',20,['xx',18]],
    ['xiaolan',10,['xx',20]]
]
# def use_key(x):
#     return x[1]

l4 = sorted(l,reverse=True,key=lambda x:x[-1][-1])  #按照二维数组中第三个元素的最后一个值降序排序
print(l4)

  返回结果:

[['xiaolan', 10, ['xx', 20]], ['xiaobai', 20, ['xx', 18]], ['xiaohei', 19, ['xx', 13]], ('小名', 5, ['xx', 11])]

  

实例3:对字典的value值进行排序

d={'a':1,'b':2,'c':-1}
print(d)
l2 = sorted(d.items(),reverse=True,key=lambda x:x[0])#按照key降序排序
#sorted会循环每个元素(d.items()返回的元素是一个由(key,value)元组组成的list),将key即x[0]作为返回值传递给key
l3 = sorted(d.items(),reverse=True,key=lambda x:x[1])按照value降序排序
print(l2)
print(l3)
#key的作用是传一个函数名

  返回结果:

{'a': 1, 'b': 2, 'c': -1}
[('c', -1), ('b', 2), ('a', 1)]
[('b', 2), ('a', 1), ('c', -1)]

  2、fitler()函数

   filter函数,将后面可迭代的部分,按照前面条件筛选,留下满足条件的数据,返回到一个list中(需要强制转换为list)

实例1:

result1 = filter(lambda x: x > 5, [12, 3, 12, 2, 1, 2, 35])#使用匿名函数作为变量
print(list(result1))     #返回filter类,需要强制转换为list
#-------------------------等价于-----------------------------
def filter_test(x):
    return x>5
result2 = filter(filter_test, [12, 3, 12, 2, 1, 2, 35])#使用定义函数名作为变量
print(list(result2))

  返回结果:

[12, 12, 35]
[12, 12, 35]

  

  3、map()函数

  map函数:map()函数是python内置的高阶函数,对传入的list的每一个元素进行映射,返回一个新的映射之后的list

实例1:

#对一个list每个元素转换为字符串且去空,并补充3位数,再输出为一个新的list
l = [12, 3, 12, 2, 1, 2, 35]
result = map(lambda x: str(x).strip().zfill(3), l) #map方式实现
print(list(result))

  返回结果:

['012', '003', '012', '002', '001', '002', '035']

  4、exec()函数和eval()函数

  exec()可执行python代码,不需要在编辑器里Run代码了

  

print(exec('def a():pass '))  # 执行python代码

#会执行定义a方法的代码

  

  eval()-----------执行python代码,但是只能执行简单的,定义数据类型和运算

result = eval('{"code":1,"name":"xiaohei"}') #执行python代码,只能执行简单的,定义数据类型和运算
print(result)


#将json字符串类型转换为了字典类型

  

print(eval('2+2'))   #执行了python运算

  

原文地址:https://www.cnblogs.com/bugoobird/p/12831207.html