'''数据类型:
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. (2)特征点匹配,并求旋转矩阵R和位移向量t

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

  2. 刚才在windows下发现拖拽不了文件了

    百度了下  摁了两下esc就可以了.以下是百度得到的答案 按几下Esc目的是:没按前ESC键[接触不好]或[键不灵]或其他原因导致ESC处于[按下]状态,这样鼠标就会拖不了文件,点击菜单也会马上消失, ...

  3. 使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之一

    好吧,现在我们假设你已经安装好了VS Code开发工具..Net Core 2.0预览版的SDK dotnet-sdk-2.0.0(注意自己的操作系统),并且已经为VS Code安装好了C#扩展(在V ...

  4. easyUI取消选中的所有行

    在datagrid选择选中行进行展示后,再返回这个datagrid重新加载数据, 原来选中的数据还是保持选中状态.执行以下的方法还是如此,如图. $("#Table").datag ...

  5. redis cluster 添加 删除 重分配 节点

    redis cluster配置好,并运行一段时间后,我们想添加节点,或者删除节点,该怎么办呢.  一,redis cluster命令 //集群(cluster) CLUSTER INFO 打印集群的信 ...

  6. 修正eth0,解决虚拟机桥接问题

    centos 中没有 ifcfg-eth0 配置文件的解决办法 1.也就是说是centos6改用NetworkManager方式管理网络了,可以运行如下命令进行确认: chkconfig --list ...

  7. XorPay.com 支付平台介绍【免费申请个人微信支付接口】

    XorPay 支付平台介绍 XorPay 定位为个人 / 独立开发者 / 个体户 / 小微企业提供安全.简单.稳定.正规的收款服务.目前支持微信 NATIVE / JSAPI / 收银台 / 小程序 ...

  8. 【xsy1120】 支援(assist) dp+卡常

    妙啊算错时间复杂度了 题目大意:给你一棵$n$个节点的二叉树,每个节点要么是叶子节点,要么拥有恰好两个儿子. 令$m$为叶子节点个数,你需要在这棵二叉树中选择$i$个叶子节点染色,叶节点染色需要一定的 ...

  9. POJ 2250

    #include <iostream> #include <stack> #define MAXN 150 #include <string> using name ...

  10. AngularJS入门之动画

    AngularJS中ngAnimate模块支持动画效果,但是ngAnimate模块并未包含在AngularJS核心库中,因此需要使用ngAnimate需要在定义Module时声明对其的引用. Angu ...