python初学总结(二)
(1)字典
字典是一种映射关系:键(key),值(value),key-value对
创建字典的方式:直接创建和利用dict函数创建
>>> aInfo = {'Wangdachui': 3000, 'Niuyun':2000, 'Linling':4500, 'Tianqi':8000}
>>> info = [('Wangdachui',3000), ('Niuyun',2000), ('Linling',4500), ('Tianqi',8000)]
>>> bInfo = dict(info)
>>> cInfo = dict([['Wangdachui',3000], ['Niuyun',2000], ['Linling',4500], ['Tianqi',8000]])
>>> dInfo = dict(Wangdachui=3000, Niuyun=2000, Linling=4500, Tianqi=8000)
>>> aDict = {}.fromkeys(('Wangdachui', 'Niuyun', 'Linling', 'Tianqi'),3000)
>>> aDict
{'Tianqi': 3000, 'Wangdachui': 3000, 'Niuyun': 3000, 'Linling': 3000}
>>> sorted(aDict)
['Linling', 'Niuyun', 'Tianqi', 'Wangdachui']
>>>names = ['Wangdachui', 'Niuyun', 'Linling', 'Tianqi']
>>>salaries = [3000, 2000, 4500, 8000]
>>>print(dict(zip(names,salaries)))
{'Niuyun': 2000, 'Linling': 4500, 'Tianqi': 8000, 'Wangdachui': 3000}
字典的基本操作:增删改查
>>> aInfo = {'Wangdachui': 3000, 'Niuyun':2000, 'Linling':4500, 'Tianqi':8000}
>>> aInfo['Niuyun'] #键值查找
5000
>>> aInfo['Niuyun'] = 9999 #更新
>>> aInfo
{'Tianqi': 8000, 'Wangdachui': 3000, 'Linling': 4500, 'Niuyun': 9999}
>>> aInfo['Fuyun'] = 1000 #添加
>>> aInfo
{'Tianqi': 8000, 'Fuyun': 1000, 'Wangdachui': 3000, 'Linling': 4500, 'Niuyun': 9999}
>>> 'Mayun' in aInfo #成员判断
False
>>> del aInfo #删除字典
>>> aInfo
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'aInfo' is not defined
字典的格式化字符串:
>>> aInfo = {'Wangdachui': 3000, 'Niuyun':2000, 'Linling':4500, 'Tianqi':8000}
>>> for key in aInfo.keys():
print 'name=%s, salary=%s' % (key, aInfo[key]) # %(key)格式说明符 % 字典对象名>>> "Niuyun's salary is %(Niuyun)s." % aInfo
"Niuyun's salary is 5000."
输出模板的作用
>>> aInfo = {'Wangdachui': 3000, 'Niuyun':2000, 'Linling':4500, 'Tianqi':8000}
>>> template = '''
Welcome to the pay wall.
Niuyun's salary is %(Niuyun)s.
Wangdachui's salary is %(Wangdachui)s.
'''
>>> print template % aInfo
Welcome to the pay wall.
Niuyun's salary is 2000.
Wangdachui's salary is 3000.
字典的方法
clear() fromkeys()
get() has_key ()
items() pop()
setdefault() update()
values() copy()
(2)集合:无序不重复的元素的集合
可变集合:set
>>> names = ['Wangdachui', 'Niuyun', 'Wangzi', 'Wangdachui', 'Linling', 'Niuyun']
>>> namesSet = set(names)
>>> namesSet {'Wangzi', 'Niuyun', 'Wangdachui', 'Linling'
不可变集合:frozenset
aSet = set('hello')
print(aSet)
fSet = frozenset('hello')
print(fSet)
{'e', 'l', 'h', 'o'}
frozenset({'e', 'l', 'h', 'o'})
集合比较和关系运算符和集合操作



(3)python常用的数据结构
ndarray(N维数组)
Series(变长字典)
DataFrame(数据框)
import numpy as np
xArray = np.ones((3,4))
print(xArray) [[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]]
ndarray:
NumPy中基本的数据结构
别名为array
利于节省内存和提高CPU计算时间
有丰富的函数
ndarray的创建和输出
>>> from numpy import *
>>> aArray = array([1,2,3])
>>> aArray
array([1, 2, 3])
>>> bArray = array([(1,2,3),(4,5,6)])
>>> bArray
array([[1, 2, 3],
[4, 5, 6]])
>>> zeros((2,2))
array([[ 0., 0.],
[ 0., 0.]])
>>> arange(1,5,0.5)
array([ 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])
ndarray的基本运算符
>>> aArray = array([(5,5,5),(5,5,5)])
>>> bArray = array([(2,2,2),(2,2,2)])
>>> cArray = aArray * bArray
>>> cArray
array([[10, 10, 10],
[10, 10, 10]])
>>> aArray += bArray
>>> aArray
array([[7, 7, 7],
[7, 7, 7]])
>>> aArray > 5
array([[ True, True, True],
[True, True, True]], dtype=bool)
ndarray的属性和方法
>>> aArray = array([(1,2,3),(4,5,6)])
>>> aArray.shape
(2, 3)
>>> bArray = aArray.reshape(3,2)
>>> bArray
array([[1, 2],
[3, 4],
[5, 6]])
>>> aArray.sum()
21
>>> aArray.sum(axis = 0)
array([5, 7, 9])
>>> aArray.sum(axis = 1)
array([ 6, 15]) >>> aArray = array([1,3,7])
>>> bArray = array([3,5,8])
>>> cArray = array([9,8,7])
>>> aArray[1:]
array([3, 7])
>>> where(aArray>2, bArray, cArray)
array([9, 5, 8]
ndarray的内建函数
>>> def fun(x,y):
return (x+1)*(y+1)
>>> arr = fromfunction(fun,(9,9))
>>> arr
array([[ 1., 2., 3., 4., 5., 6., 7., 8., 9.],
[ 2., 4., 6., 8., 10., 12., 14., 16., 18.],
[ 3., 6., 9., 12., 15., 18., 21., 24., 27.],
[ 4., 8., 12., 16., 20., 24., 28., 32., 36.],
[ 5., 10., 15., 20., 25., 30., 35., 40., 45.],
[ 6., 12., 18., 24., 30., 36., 42., 48., 54.],
[ 7., 14., 21., 28., 35., 42., 49., 56., 63.],
[ 8., 16., 24., 32., 40., 48., 56., 64., 72.],
[ 9., 18., 27., 36., 45., 54., 63., 72., 81.]])
ndarray的ufunc函数
import numpy as np
>>> a = np.arange(1,5)
>>> a
array([1, 2, 3, 4])
>>> b = np.arange(2,6)
>>> b
array([2, 3, 4, 5])
>>> np.add(a,b)
array([3, 5, 7, 9])
>>> np.add.accumulate([2, 3, 8])
array([ 2, 5, 13])
>>> np.multiply.accumulate([2, 3, 8])
array([ 2, 6, 48])
Source
help(ufunc)
help(numpy)
add = <ufunc 'add'>
python初学总结(二)的更多相关文章
- python初学(二)
1.输入一个整数列表L,判断L中是否存在相同的数字: (1)若存在,输出YES,否则输出NO: (2)若存在,输出YES,同时输出相同的数字:否则输出NO. l=list(input()) print ...
- 初学 Python(十二)——高阶函数
初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...
- Python爬虫初学(二)—— 爬百度贴吧
Python爬虫初学(二)-- 爬百度贴吧 昨天初步接触了爬虫,实现了爬取网络段子并逐条阅读等功能,详见Python爬虫初学(一). 今天准备对百度贴吧下手了,嘿嘿.依然是跟着这个博客学习的,这次仿照 ...
- 孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备
孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天本来应当继续学习Python的数据库操作,但根据过去我自 ...
- Python初学笔记之字符串
一.字符串的定义 字符串是就一堆字符,可以使用""(双引号).''(单引号)来创建. 1 one_str = "定义字符串" 字符串内容中包含引号时,可以使用转 ...
- python排序之二冒泡排序法
python排序之二冒泡排序法 如果你理解之前的插入排序法那冒泡排序法就很容易理解,冒泡排序是两个两个以向后位移的方式比较大小在互换的过程好了不多了先上代码吧如下: 首先还是一个无序列表lis,老规矩 ...
- Python 基础语法(二)
Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...
- Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识
Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4 ...
- python/MySQL练习题(二)
python/MySQL练习题(二) 查询各科成绩前三名的记录:(不考虑成绩并列情况) select score.sid,score.course_id,score.num,T.first_num,T ...
- Python/MySQL(二、表操作以及连接)
Python/MySQL(二.表操作以及连接) mysql表操作: 主键:一个表只能有一个主键.主键可以由多列组成. 外键 :可以进行联合外键,操作. mysql> create table y ...
随机推荐
- Elasticsearch的javaAPI之get,delete,bulk
Elsasticsearch的javaAPI之get get API同意依据其id获得指定index中的基于json document.以下的样例得到一个JSON document(index为twi ...
- Jquery解析json数组字符串
最近在工作中用到了Jquery来解析json字符串,网上解析jquery解析json单个对象的实例不少,但是jquery解析json数组的实例却是不多,下面我举一个简单的例子来跟大家分享与一下,本人水 ...
- [Django学习]模型
ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库 ORM是“对象-关系-映射”的简称 ...
- Web API(五):Web API跨域问题
一.什么是跨域问题 跨域:指的是浏览器不能执行其他网站的脚本.是由浏览器的同源策略造成的,是浏览器施加的安全限制.(服务端可以正常接收浏览器发生的请求,也可以正常返回,但是由于浏览器的安全策略,浏览器 ...
- VMware 14 Pro 安装 CentOS 7
今年准备好好学习一下.NET CORE了,那也是得学习Linux.然后又得学习更多,咬着牙干吧... 1.Vmware虚拟机安装 在windows平台,首先咱们得先安装Vmware虚拟机,步骤省略,一 ...
- ApplicationEventMulticaster not initialized - call 'refresh' before
https://stackoverflow.com/questions/45318618/applicationeventmulticaster-not-initialized-call-refres ...
- 231个javascript特效分享
1.文本框焦点问题onBlur:当失去输入焦点后产生该事件onFocus:当输入获得焦点后,产生该文件Onchange:当文字值改变时,产生该事件Onselect:当文字加亮后,产生该文件 <i ...
- [mysql] 查询前几条记录
From: http://www.cnblogs.com/xuxm2007/archive/2010/11/16/1878211.html SELECT * FROM table LI ...
- php eval函数一句话木马代码
eval可以用来执行任何其他php代码,所以对于代码里发现了eval函数一定要小心,可能是木马 就这一句话害死人,这样任何人都可以post任何文件上来,所以要做好防范 <?php @eval($ ...
- c++ 向main传递参赛
1.今天写了个批处理文件 准备向main传递参赛 发现在vs2008运行正常 vs2010运行只有首字母 2.需要在项目--属性--常规-字符集里面设置成多字节就好了,以前是unicode 3.因为 ...