'''数据类型:
int
bool
... 数据结构:
dict (python独有的)
list
tuple (pytho独有的)
set
str
''' # reverse() 反转
l = [1,2,3,4,5]
l.reverse()
print(l) # reversed() 反转,但它的反转不改变原来的列表且返回一个反序的迭代器
l = [1,2,3,4,5]
l2 = reversed(l)
print(l2) # <list_reverseiterator object at 0x000001DF4CC30940> # slice() 切片
l = [1,2,3,4,5,6,7]
lis = slice(1,5,2)
print(l[lis]) # 和 l[1,5,2] 效果一样 # 字符串
#
# str
#
# format()
#
# http://www.cnblogs.com/Eva-J/articles/7266245.html # bytes 转换成bytes类型 print(bytes('你好',encoding='GBK')) # unicode转换成GBK的bytes
print(bytes('你好',encoding='GBK').decode('GBK'))
print(bytes('你好',encoding='UTF-8')) # unicode转换成utf-8的bytes
print(bytes('你好',encoding='UTF-8').decode('utf-8'))
# 我拿到的是GBK编码的,我想转成UTF-8编码 # 网络编程中 只能传二进制
# 照片和视频也是以二进制存储
# html网页爬取到的也是编码 # bytearray # b_array = bytearray('你好',encoding='UTF-8')
# print(b_array)
# print(b_array[0]) # memoryview # ord
# 字符按照unicode转数字 print(ord('a')) # 97
print(ord('你')) # 20320
# chr
# 数字按照unicode转字符
print(chr(97)) # a # ascii
# 只要是ascii码中的内容,就打印出来,不是就转换成\u
print(ascii('好')) # '\u597d'
print(ascii('a')) # 'a' # repr:用于%r格式化输出
name = 'KID'
print('你好,%s'%name) # 你好,KID name = 'KID'
print('你好,%r'%name) # 你好,'KID',调用了repr print(repr(1))
print(repr('1')) # 会带着符号全部输出 # dict # set # frozenset:不可变的 --------------------------------------------------------------------------------------
# len() enumerate() zip() filter() map() sorted()

# len :长度

# enumerate: 枚举

all : 列表里面存在有False的就输出false
print(all(['a','',123])) # False
print(all(['a',123])) # True
print(all([0,123])) # False # any()
print(any([0,123])) # True zip():返回一个迭代器
l = [1,2,3]
l2 = ['a','b','c']
print(zip(l,l2)) # <zip object at 0x000001F908DC68C8>
for i in zip(l,l2):
print(i)
(1, 'a')
(2, 'b')
(3, 'c') 个数不一样
l = [1,2,3]
l2 = ['a','b','c','d']
for i in zip(l,l2):
print(i)
(1, 'a')
(2, 'b')
(3, 'c') 个数不一样
l = [1,2,3,4]
l2 = ['a','b','c']
for i in zip(l,l2):
print(i)
(1, 'a')
(2, 'b')
(3, 'c') 类型不一样:列表与元组
l = [1,2,3]
l2 = ('*','+++',[1,2])
for i in zip(l,l2):
print(i)
(1, '*')
(2, '+++')
(3, [1, 2]) 列表与字典
l = [1,2,3]
l2 = {'*':'+++','sdf':[l]}
for i in zip(l,l2):
print(i)
(1, '*')
(2, 'sdf') 只输出keys filter() http://www.cnblogs.com/Eva-J/articles/7266192.html 要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数
def is_odd(x):
return x % 2 == 1
ret = filter(is_odd, [1, 4, 6, 7, 9, 12, 17]) # 里面第一个必须是函数的名字,不能加括号
print(ret) # 迭代器 <filter object at 0x000001B7039886A0>
返回迭代器,是为了节省内存
for i in ret:
print(i)
1
7
9
17 相当于做一个筛选 # # 与下面这种写法一样
# [i for i in [1, 4, 6, 7, 9, 12, 17] if i % 2 == 1]
# # 只返回字符串类型
# def is_str(s):
# return type(s) == str
# ret = filter(is_str, [1, 4, 're', '7', 9, 12, 17])
# for i in ret:
# print(i)
# re
# 7 # 利用filter(),可以完成很多有用的功能,例如,删除 None 或者空字符串:
# def is_not_empty(s):
# return s and str(s).strip()
# ret = filter(is_not_empty, [1,'test', None, [], '', 'str', ' ', 'END'])
# print(ret) # <filter object at 0x000001D14BDC6B00>
# for i in ret:
# print(i)
# test
# str
# END # 请利用filter()过滤出1~100中平方根是整数的数,即结果应该是: # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# import math
# def func(num):
# return math.sqrt(num) % 1 == 0
# ret = filter(func,range(1,101))
# for i in ret:
# print(i)
#
# # map
# ret = map(abs,[1,2,4,-4,-8])
# print(ret) # <map object at 0x0000012F344169B0>
# for i in ret:
# print(i)
#
# # filter: 执行了filter之后的结果集合一定小于或等于之前的个数
# # filter只管筛选,不会改变原来的值
# # map:执行前后元素个数不变,
# # 值可能发生改变
#
# # sorted
#
# # http://www.cnblogs.com/Eva-J/articles/7265992.html
#
# # sort
# l = [1,-4,6,-8,10]
# l.sort() # [-8, -4, 1, 6, 10]
# print(l)
#
# l = [1,-4,6,-8,10]
# l.sort(key=abs) # [1, -4, 6, -8, 10]
# print(l)
#
# # sorted
#
# l = [1,-4,6,-8,10]
# print(sorted(l)) # [-8, -4, 1, 6, 10]
# print(l) # [1, -4, 6, -8, 10]
# # sort直接改变原列表
# # 生成一个新列表,占内存。
# # 说明l还在,在列表不大的时候可以用,且要保留原列表时。
#
#
# # 2.
# # 列表按照其中每一个值的绝对值排序
# li = [1,-2,3,-48,78,9]
# print(sorted(li,key = abs)) # [1, -2, 3, 9, -48, 78]
#
# 3.
# 列表按照每一个元素的len排序
li = [(1,-2),[3],[-48,78,9],'hello world']
ret = sorted(li,key = len)
print(ret) # [[3], (1, -2), [-48, 78, 9], 'hello world']
----------------------------------------------------------------------------------
# 匿名函数:为了解决那些功能很简单的需求而设计的一句话函数

# 这段代码
def calc(n):
return n ** n print(calc(10)) # 换成匿名函数
calc = lambda n: n ** n
print(calc(10)) # 函数名 = lambda 参数 :返回值 #参数可以有多个,用逗号隔开
#匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
#返回值和正常的函数一样可以是任意数据类型 # 请把以下函数变成匿名函数
def add(x,y):
return x+y ret = lambda x,y:x+y
print(ret(5,6)) # 上面是匿名函数的函数用法。除此之外,匿名函数也不是浪得虚名,它真的可以匿名。在和其他功能函数合作的时候 l=[3,2,100,999,213,1111,31121,333]
print(max(l)) dic = {'k1':10,'k2':100,'k3':30}
# print(max(dic))
print(max(dic,key= lambda k:dic[k])) #map
res = map(lambda x:x**2,[1,5,7,4,8])
for i in res:
print(i)
#filter
res = filter(lambda x:x>10,[5,8,11,9,15])
for i in res:
print(i) # min max filter map sorted --> lambda 现有两元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}] 看到匿名函数,就要想到肯定会带着考内置函数,而和匿名函数相关的内置函数只有5个:min max filter map sorted
排除法想到map # 没用匿名函数
tu1 =(('a'),('b'))
tu2 =(('c'),('d'))
res = zip(tu1,tu2)
def func(tup):
return {tup[0]:tup[1]}
ret = map(func,res)
# for i in ret:
# print(i)
list(ret) # 用匿名函数
tu1 =(('a'),('b'))
tu2 =(('c'),('d'))
res = zip(tu1,tu2)
# def func(tup):
# return {tup[0]:tup[1]}
ret = map(lambda tup:{tup[0]:tup[1]},res)
# for i in ret:
# print(i)
print(list(ret)) # 简化后:
print(list(map(lambda tup:{tup[0]:tup[1]},zip((('a'),('b')),(('c'),('d'))))))

python学习之老男孩python全栈第九期_day016知识点总结的更多相关文章

  1. python学习之老男孩python全栈第九期_day027知识点总结——反射、类的内置方法

    一. 反射 ''' # isinstance class A:pass class B(A):pass a = A() print(isinstance(a,A)) # 判断对象和类的关系 print ...

  2. python学习之老男孩python全栈第九期_day023知识点总结——类和对象命名空间、组合

    一. 类和对象命名空间类里 可以定义两种属性: 1. 静态属性 2. 动态属性 class Course: language = 'Chinese' def __init__(self, teache ...

  3. python学习之老男孩python全栈第九期_day019知识点总结——collections模块、时间模块、random模块、os模块、sys模块

    一. collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:namedtuple.deque.Counte ...

  4. python学习之老男孩python全栈第九期_day017知识点总结——初识递归、算法

    一. 递归函数 如果一个函数在内部调用自身本身,这个函数就是递归函数. 最大递归深度默认是997 -- python从内存角度出发做得限制(而不是程序真的报错),最大深度可以修改 def func(n ...

  5. python学习之老男孩python全栈第九期_day010知识点总结

    def qqxing(l = []): # 可变数据类型 l.append(1) print(l)qqxing() # [1]qqxing([]) # [1]qqxing() # [1, 1]qqxi ...

  6. python学习之老男孩python全栈第九期_day007知识点总结

    基础数据类型汇总 1. str 2. int 3. list 4. bool 5. dict (1) fromkeys Python 字典 fromkeys() 方法用于创建一个新的字典,并以可迭代对 ...

  7. python学习之老男孩python全栈第九期_day001知识点总结

    1. Python2与Python3的区别: Python2:源码不标准,混乱,重复代码太多: Python3:统一标准,去除重复代码. 编码方式: python2的默认编码方式为ASCII码:pyt ...

  8. python学习之老男孩python全栈第九期_day014知识点总结

    # 迭代器和生成器# 迭代器 # 双下方法:很少直接调用的方法,一般情况下,是通过其他语法触发的# 可迭代的 --> 可迭代协议:含有__iter__的方法( '__iter__' in dir ...

  9. python学习之老男孩python全栈第九期_day015知识点总结

    # 作用域相关(2)locals() # 返回本地作用域中的所有名字 globals() # 返回全局作用域中的所有名字 # 迭代器/生成器相关(3)range()print('__next__' i ...

随机推荐

  1. LayUI把表格中的时间戳改成格式化的时间

  2. (2)特征点匹配,并求旋转矩阵R和位移向量t

    include头文件中有slamBase.h # pragma once // 各种头文件 // C++标准库 #include <fstream> #include <vector ...

  3. maven项目发布到tomcat后没有lib目录解决方案

    maven项目放入tomcat中时,总是报错,而且这些jar都是真实存在的,错误如下: maven eclipse tomcat java.lang.ClassNotFoundException: o ...

  4. centos6下无法使用lsof命令"-bash: lsof: command not found"

    1. 问题描述在centos下, 无法使用命令lsof, 出现以下信息:# lsof -i:3690-bash: lsof: command not found2. 解决方法我们可以通过yum来安装: ...

  5. Class 和 MetaClass

    在 OC 中,类的一个实例定义如下: /// Represents an instance of a class. struct objc_object { Class _Nonnull isa OB ...

  6. pg_stat_statements跳过的坑

    pg_stat_statements跳过的坑 原本以为只是一个简单的插件扩展安装,三下五除二就能搞定,结果搞了很久也没找到问题所在.首先pg_stat_statements已经安装成功,且已经能够使用 ...

  7. python3模块: uuid

    一. 简介 UUID是128位的全局唯一标识符,通常由32字节的字母串表示.它可以保证时间和空间的唯一性,也称为GUID. 全称为:UUID--Universally Unique IDentifie ...

  8. python3 内置函数详解

    内置函数详解 abs(x) 返回数字的绝对值,参数可以是整数或浮点数,如果参数是复数,则返回其大小. # 如果参数是复数,则返回其大小. >>> abs(-25) 25 >&g ...

  9. 使用git时出现Please make sure you have the correct access rights and the repository exists.问题已解决。

    使用git时,出现Please make sure you have the correct access rights and the repository exists.问题已解决. 今天我在使用 ...

  10. sqlserver监控阻塞(死锁)具体情况(转)

    公司sqlserver的监控系统主要是采用zabbix监控,但是zabbix的监控只能通过性能计数器给出报警,而无法给出具体的阻塞情况,比如阻塞会话.语句.时间等,所以需要配合sqlserver的一些 ...