python学习--对象类型(num,string,list,dict,tuple,file)
来源:互联网 发布:cygwin linux内核 编辑:程序博客网 时间:2024/06/01 09:31
1.数字num
1.1 > 数字模块,如math,random
>>> import math>>> math.pi3.141592653589793
1.2 //,地板除,返回一个整数,
>>> 10//33
1.3 len()
>>> len(str(2**100))31
1.4 random()
>>> random.shuffle(['i','love','study','python'])>>> print(random.shuffle(['i','love','study','python']))None>>> p=random.shuffle(['i','love','study','python'])>>> print(p)None>>> p=['i','love','study','python']>>> random.shuffle(p)>>> print(p)['python', 'i', 'love', 'study']>>>
>>> random.randint(1,10)7>>> random.uniform(1,10)8.718241608293088>>> random.randrange(1,10,1)8>>> random.choice([1,2,3,4,5])
1.5 map()
其实,map应用于list生成更加常见。
>>> def add100(x): return x+100>>> list(map(add100,hh))[111, 112, 133]
1.6 ord() :取数据的整数部分
>>> {ord(x) for x in 'spaam'}{112, 97, 115, 109}
>>> ord('中')20013
2.字符串string,符号’ ‘
2.1 string的不可变性
只能通过生成新的string来改变string的值或者重新定义string。
>>> a='xyz'>>>> a=a+'xyz'>>> print(a)xyzxyz
2.2常见的其中操作
find()/ replace()/ split()/ upper()/ isalpha()
>>> s='school'>>> s.find('ch')1>>> s.replace('ch','t')'stool'>>> line=('i,like,python')>>> line.split(',')['i', 'like', 'python']>>> line=('i like python')>>> line.split(' ')['i', 'like', 'python']>>> line=('I like python!')>>> line.upper()'I LIKE PYTHON!'>>> line.isalpha()False>>> line=('ilikepython')>>> line.isalpha()True
2.3 格式化的高级替代、模块匹配
>>> '%s eggs and %s'%('hens','meat')'hens eggs and meat'>>> '{0} and {1}'.format('chicken','dog')'chicken and dog'>>> import re>>> match=re.match('hello[ ](.*)world','hello python world!')>>> match.group(1)'python '>>> match=re.match('hello[ ](.*)[ ]world','hello python world!')>>> match.group(1)'python'
3、列表list,符号[]
任意类型的有序集合,没有固定的大小。
3.1 list
>>> L=[123,'spark',1.2]>>> L[123, 'spark', 1.2]>>> len(L)3
3.2 列表的增减append、sort、reverse()
>>> L+['hadoop','tensorflow'][123, 'spark', 1.2, 'hadoop', 'tensorflow']
>>> l.append('hadoop')>>> l[-1]'hadoop'>>> l=['apple','pear','food']>>> l.sort()>>> l['apple', 'food', 'pear']>>> l.reverse()>>> l['pear', 'food', 'apple']
3.3把嵌套列表的最后一个元素删除
a=[[1,2,3],[4,5,6],[7,8,9]]print('a',a)# a.pop(a[0][1])# print('a.pop',a)print('a22',a[2][2])a[1].pop()print('a1',a[1])
运行结果
a [[1, 2, 3], [4, 5, 6], [7, 8, 9]]a22 9a1 [4, 5]
3.4 把数据的第一行删除,第一列删除,获得最后一列作为label数据,其他作为train 数据
import csvimport reader from csvX=[]Y=[]#定义空列表,存储训练数据和labelfor item in reader: if reader.line_num==1:#忽略第一行 continue X.append(item)for i in range(len(X)): Y.append(X[i].pop()) X[i].pop(0)print('X',X)print('Y',Y)
3.5关于列表的维度shape
x=[[1,2]]#1*2w=[[1,2,3],[4,5,6]]#2*3xx=tf.matmul(x,w)print(xx)
a=[[1,2,3],[4,5,6],[9,8,7]]x=[[1,2],[2,3],[3,4],[4,5]]#4*2w=[[1,2,3],[4,5,6]]#2*3# b=[[1,2,3],[1,2,3],[1,2,3],[1,2,3]]b=[[1,2,3]]xx=tf.matmul(x,w)with tf.Session() as sess: print(sess.run(xx))xx=tf.matmul(x,w)+bwith tf.Session() as sess: print(sess.run(xx))
运行结果:
[[ 9 12 15] [14 19 24] [19 26 33] [24 33 42]]2017-12-22 08:57:32.813057: I C:\tf_\PY\35\tensorflow\core\common_runtimw device (/device:GPU:0) -> (device:01:00.0, compute capability: 3.5)[[10 14 18] [15 21 27] [20 28 36] [25 35 45]]```###4、字典dict,符号{}字典是一种映射,通过键来存储,和列表一样具有可变性
class1={‘name’:’507’,’number’:’26’}
class1[‘name’]
‘507’
class1[‘number’]
‘26’
```name,number都是字典的键。
4.1通过键赋值
>>> class1['number']=27>>> class1['number']27>>>
4.2重复嵌套
>>> info1={'name':{'first':'rose','last':'fun'}}>>> info1['name']{'first': 'rose', 'last': 'fun'}
>>> car={'size':'large','color':'black','quality':['fine']}>>> car['quality'].append('runfast')>>> car{'size': 'large', 'color': 'black', 'quality': ['fine', 'runfast']}
可以看出,list具有可变性,因为它的内存可以随意增加或减小。
为什么dict查找速度这么快?因为dict的实现原理和查字典是一样的。假设字典包含了1万个汉字,我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。
第二种方法是先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。
dict就是第二种实现方式,给定一个名字,比如’Michael’,dict在内部就可以直接计算出Michael对应的存放成绩的“页码”,也就是95这个数字存放的内存地址,直接取出来,所以速度非常快。
你可以猜到,这种key-value存储方式,在放进去的时候,必须根据key算出value的存放位置,这样,取的时候才能根据key直接拿到value。
4.3 dict的get()用法
>>> print(class1.get('address'))None>>> class1.get('address',-9)-9>>> class1.get('number',9)27
若字典含有该键,返回相应值,否则,返回None或者自定义的一个数值。
和list比较,dict有以下2个特点:
查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。其中,通过key计算位置的算法称为哈希算法(Hash)。
要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key
4.3 简单说说set()
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:>>> s=set([1,2,3])>>> s{1, 2, 3}>>> s.add(123)>>> s{123, 1, 2, 3}>>> s.pop()123>>> s{3}>>> s.add(256)>>> s{256, 3}>>> s.remove(3)>>> s{256}
>>> ddkey=list(dd.keys())>>> ddkey.sort()>>> for name in ddkey: print(name,'>',dd[name])peking > 88tsing > 90zju > 89>>>
5、元组tuple,符号()
元组,就像不可改变的列表。
>>> s=('spark',[1, 2, 3],1.2)>>> s('spark', [1, 2, 3], 1.2)>>> s.count(1.2)1>>> s.index(1.2)2
注:tuple是固定大小的,不支持增减,也就是没有append()、pop()等函数。
>>> s.pop()Traceback (most recent call last): File "<pyshell#42>", line 1, in <module> s.pop()AttributeError: 'tuple' object has no attribute 'pop'>>> s=s+(4,5)>>> s('spark', [1, 2, 3], 1.2, 4, 5)
参考:
1、random();
2、字典用法
- python学习--对象类型(num,string,list,dict,tuple,file)
- python 基本类型list、tuple、dict学习
- Python之list,string,tuple,dict练习题
- 【python】-list,tuple,dict
- Python:list,tuple,dict
- [Python]list, tuple,dict
- Python----list,dict,tuple
- python学习-------list、tuple、set、dict
- 【Python】基础学习——列表(list),元祖(tuple),字典(dict),字符串(string),集合(set)
- python 基础知识 dict list tuple
- Python List 、 tuple和dict
- Python list、tuple、dict区别
- python list tuple dict set
- Python list、tuple、dict区别
- Python--list,tuple,dict,set.
- Python学习记录——Python tuple、list、dict
- python内置类型(list,dictionary, tuple , string, )
- Python学习笔记--表list, 元组tuple, 字典dict
- 简单背包问题(0032)
- Python 练习实例27
- 位操作入门
- Attribute "class" was already specified for element "bean".
- static具体解释
- python学习--对象类型(num,string,list,dict,tuple,file)
- [后缀平衡树][JZOJ4384]hashit
- C#委托、事件
- 课后作业之动物类
- EasyDSS流媒体解决方案之Windows服务安装
- 《ES6标准入门》:let 和 const 命令
- 文章标题 并行计算 -- OpenMP简介和计算实例 (计算pi)
- linux基础系统目录
- scrapy实战爬取电影天堂相关信息