python 常用知识点
1,字典get用法
如果key没有值,返回一个None
>>> dic = {'k1':'v1','k2':'v2','k3':'v3'}
>>> dic.get('k4')
>>> p = dic.get('k4')
>>> print p
None
get(‘k4’,'k4')如果k4 没有值可以指定返回值,如果有值,则返回原有值
>>> dic.get('k4','v4')
'v4'
>>> dic.get('k3','v4')
'v3'
>>> dic.get('k2','v4')
'v2'
>>> dic.get('k1','v4')
'v1'
2,字典的取值:
>>> dic.keys()
['k3', 'k2', 'k1']
>>> dic.values()
['v3', 'v2', 'v1']
>>> for k,v in dic.items():
... print k,v
...
k3 v3
k2 v2
k1 v1
>>> for k,v in dic.items():
... print k,v,
...
k3 v3 k2 v2 k1 v1
>>>
3,set
去除重复的元素。
t = set(['a','b','c'])
s = set(['a','b','c','d'])
集合支持一系列标准操作,包括并集、交集、差集和对称差集,例如:
a = t | s # t 和 s的并集
>>> a = t | s
>>> a
set(['a', 'c', 'b', 'd'])
b = t & s # t 和 s的交集
>>> b = t & s
>>> b
set(['a', 'c', 'b'])
c = t – s # 求差集(项在t中,但不在s中)
>>> c = t - s
>>> c
set([])
d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中)
基本操作:
t.add('x') # 添加一项
s.update([10,37,42]) # 在s中添加多项
4, input 输入的字符串可以使用json转成字典 使用json.loads(),例如:
>>> import json
>>> s = raw_input()
{"k1":"v1","k2":"v2"} #一点要是双引号
>>> type(s)
<type 'str'>
>>> dic = json.loads(s)
>>> type(s)
<type 'str'>
>>> type(dic)
<type 'dict'>
>>>
5, OrderedDict,
使用dict时,Key是无序的。在对dict做迭代时,我们无法确定Key的顺序。
如果要保持Key的顺序,可以用OrderedDict:
注意,OrderedDict的Key会按照插入的顺序排列,不是Key本身排序:
>>> from collections import OrderedDict
>>> t = dict([('a',1),('b',2),('c',3)])
>>> t
{'a': 1, 'c': 3, 'b': 2}
>>> s = OrderedDict([('a',1),('b',2),('c',3)])
>>> s
OrderedDict([('a', 1), ('b', 2), ('c', 3)])
>>>
6,Counter
这是一个计数器,统计字符出现的次数。
>>> from collections import Counter
>>> c = Counter()
>>> a = 'asdfdscdcdfasad'
>>> c = Counter(c)
>>> c = Counter(a)
>>> c
Counter({'d': 5, 'a': 3, 's': 3, 'c': 2, 'f': 2})
>>>
7,默认字典:使用default为字典设置默认值
>>> from collections import defaultdict
>>> l = defaultdict(list)
>>> print l
defaultdict(<type 'list'>, {})
>>> l['k1'].append('v1')
>>> print l
defaultdict(<type 'list'>, {'k1': ['v1']})
>>> l['k1'].append('v1.1')
>>> print l
defaultdict(<type 'list'>, {'k1': ['v1', 'v1.1']})
>>>
8.动态参数(函数)
>>> def show(*arg):
... print arg,type(arg)
...
>>> show(123,123)
(123, 123) <type 'tuple'>
>>> >>> def show(**arg):
... print arg,type(arg)
...
>>> show(n1=12,n2=123,n3=234)
{'n1': 12, 'n2': 123, 'n3': 234} <type 'dict'>
>>>
内置函数map,fillter
>>> l = [11,22,33,44]
>>> newl = map(lambda x:x+100,l)# 也可以加函数map(函数名,l)
>>> newl
[111, 122, 133, 144]
>>> newl = map(lambda x:x+100,l)
>>> newl
[111, 122, 133, 144]
>>> def func(s):
... if s >133:
... return True
... else:
... return False
...
>>> n = filter(func,newl)
>>> n
[144]
zip的方法:
>>> l = [1,3,5,7]
>>> s = [2,4,6,8]
>>> k = zip(l ,s)
>>> k
[(1, 2), (3, 4), (5, 6), (7, 8)]
>>>
9,迭代器和生成器
定义:一个函数调用时返回一个迭代器,那这个函数就叫生成器(generater),如果函数中包含yield语法,那这个函数就变成生成器
def cash_cut(amount):
while amount >0:
amount -= 100
yield 100
print("擦,有来取钱了。。。败家子")
ATM = cash_cut(500)
print(type(ATM))
print(ATM.__next__())
print(ATM.__next__())
print(ATM.__next__()) 输出:
<class 'generator'>
100
擦,有来取钱了。。。败家子
100
擦,有来取钱了。。。败家子
100
yield单线程异步实例:
import time
def customer(name):
print('%s准备吃包子了'% name)
while True:
baozi = yield
print('包子[%s]来了,被%s给吃了'%(baozi,name)) def product():
c1 = customer('W')
c2 = customer('B')
c1.__next__()
c2.__next__()
print('我要开始做包子了,你们先等会!')
for i in range(10):
time.sleep(1)
print('我做了两个包子!')
c1.send(i)
c2.send(i)
product()
10.装饰器例子
def login(func):
def inner(arg):
print('please user verify....')
func(arg)
return inner @login
def tv(name):
print('welcome [%s] look at tv' %name) tv('www')
python 常用知识点的更多相关文章
- JAVA常用知识点及面试题总结
1. String.StringBuffer.StringBuilder三者区别? (1)三者在执行速率上的比较: String<StringBuffer<StringBuilder 原因 ...
- python 类知识点总结
python 类知识点总结 面向对象思想: 1.设计的时候,一定要明确应用场景 2.由对象分析定义类的时候,找不到共同特征和技能不用强求 1.简述类.对象.实例化.实例这些名词的含义: 类:从一组对象 ...
- python Django知识点总结
python Django知识点总结 一.Django创建项目: CMD 终端:Django_admin startproject sitename(文件名) 其他常用命令: 其他常用命令: 通过类创 ...
- [转载] Python数据类型知识点全解
[转载] Python数据类型知识点全解 1.字符串 字符串常用功能 name = 'derek' print(name.capitalize()) #首字母大写 Derek print(name.c ...
- python常用函数拾零
Python常用内置函数总结: 整理过程中参考了runoob网站中python内置函数的相关知识点,特此鸣谢!! 原文地址:http://www.runoob.com/python/python-bu ...
- [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】
[python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...
- Python 常用string函数
Python 常用string函数 字符串中字符大小写的变换 1. str.lower() //小写>>> 'SkatE'.lower()'skate' 2. str.upper ...
- Python常用模块之sys
Python常用模块之sys sys模块提供了一系列有关Python运行环境的变量和函数. 常见用法 sys.argv 可以用sys.argv获取当前正在执行的命令行参数的参数列表(list). 变量 ...
- python常用数据类型内置方法介绍
熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...
随机推荐
- 静态初始化块和main方法哪个先被执行?
直接看代码 public class BlockAndMain { public static void main(String[] args) { System.out.println(" ...
- 知识点:图说 Mysql 权限管理
图: #授权表 user #该表放行的权限,针对:所有数据,所有库下所有表,以及表下的所有字段 db #该表放行的权限,针对:某一数据库,该数据库下的所有表,以及表下的所有字段 tables_priv ...
- alertjs Documentation
原文地址:https://github.com/PaulNieuwelaar/alertjs/wiki/Documentation#alertshow For version 3.0 document ...
- 官方解析Cookies和Session的区别
官方理解: Cookie机制 Cookie机制 Cookie是服务器存储在本地计算机上的小块文本,并随每个请求发送到同一服务器. IETF RFC 2965 HTTP状态管理机制是一种通用的coo ...
- Java 身份证号码验证
身份证号码验证 1.号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码 2.地址码(前 ...
- leetcode75
class Solution { public: void sortColors(vector<int>& nums) { sort(nums.begin(), nums.end( ...
- 2Linux常用命令-Liunu就该这么学
常用系统工作命令 1.echo 用于在终端输出字符串或变量提取后的值,格式为“echo [字符串 | $变量]” 2.date date "+%Y-%m-%d %H:%M:%S" ...
- Python学习笔记---切片 列表 元祖 字典 集合
列表[1,2,3,2]#[] 元祖(1,2,3,2)#() 字典{1:2,3:2}#{} 集合{1,2,3,2}#{} 1,集合与列表的区别,集合里不能有重复元素 2.字典与集合的区别,都是用花括号表 ...
- Helm简介
什么是Helm 微服务和容器化给复杂应用部署与管理带来了极大的挑战.Helm是目前Kubernetes服务编排领域的唯一开源子项目,作为Kubernetes应用的一个包管理工具,可理解为Kuberne ...
- 简单的TSQL基础编程格式,存储过程,视图
这里简单整理一下数据库简单的编程,变量定义,赋值,分支语句和循环(这里以Sqlserver),以及存储过程格式 首先是变量定义,赋值,分支语句 --======TSQL数据库基础编程,定义变量,赋值, ...