python标准数据类型:
1,数字(number)
2,字符串 (string)
3,列表(List)
4,元组(Tuple)
5,字典(Dictionary)
一,数字类型
# int(有符号整型)
# long(长整型[也可以代表八进制和十六进制])
# float(浮点型)
# complex(复数)
二,字符串类型
# python的字串列表有2种取值顺序:
# 从左到右索引默认0开始的,最大范围是字符串长度少1
# 从右到左索引默认-1开始的,最大范围是字符串开头
s ='ilovepython'
ss='iloveyan'
print("1 "+s); #输出ilovepython
print("2 "+s[1:5]) #输出love
print("3 "+s[0]) # 输出i
print("4 "+s[-1]) # 输出n
print("5 "+s[-5:-1]);
三,列表类型
# 列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。
# 加号 + 是列表连接运算符(只能将两个列表组合到一起),星号 * 是重复操作
# a 列表生成器 range(start,stop,step) start一般由0开始 stop到stop结束(不包含stop) step 为步数
list=[1,2,3,'haha'];
print(list[1]);
list[1]=100;
print(list) #可以二次赋值
sedlist=[list,8,0,'sss'];
print(sedlist)
print(list+sedlist);
print(list*2)
print(len(list)); # len 计算list长度
# 列表生成器练习
练习一
for x in range(1,11):
L.append(x*x); #输出 [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
练习二
print([x*xfor xin range(1,11)if x%2==0]) #[4, 16, 36, 64, 100]
print( [m + nfor min 'ABC' for nin 'XYZ'])
L = ['Hello', 'World', 'IBM', 'Apple']
[s.lower()for sin L] # 输出['hello', 'world', 'ibm', 'apple']
四,元组类型
# 元组是另一个数据类型,类似于List(列表)。
# 元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
tuple=(1,2,3)
print(tuple*2);
print(tuple[1]);
# tuple[1]=200;
# print(tuple); #注意:元组不能二次赋值
五,字典类型
#列表是有序的对象集合,字典是无序的对象集合。
#两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
#字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
#字典有两种赋值方法如下
dict={}
dict['one']="this is one";
dict['two']="this is two";
print(dict)
dict1={'name':"hanlin",'age':22,'sex':"man"};
print(dict1['name'])
print(dict1)
f=1.8
print(int(f))
print(isinstance(str(f),str))# 判断数据类型
#补充1,:dict的items()可以同时迭代key和value:
d = {'x':'A', 'y':'B', 'z':'C' }
for k, vin d.items():
print(k, '=', v)# x=A,y=B,z=C
# 补充2:要避免key不存在的错误,有两种办法,一是通过in判断key是否存在 二是通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
dict21={'name':"hanlin",'age':22,'sex':"man"};
if('name'in dict21):
print(1)
print(dict21.get('class',"没有class"))
print(dict21.get('name',-1))
# 补充3:dict和list比较,dict有以下几个特点:
# 1,查找和插入的速度极快,不会随着key的增加而增加;
# 2,需要占用大量的内存,内存浪费多。
# 而list相反:
#
# 查找和插入的时间随着元素的增加而增加;
# 1,占用空间小,浪费内存很少。
# 2,所以,dict是用空间来换取时间的一种方法。)
六,set
# set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”
s1=([1,2,3],[4,5,5],[4,2,2])
print(s1)
s2=([1,1,2,2,3,3])
print(s2)
# add(key) 可以添加到set中
# remove(key) 可以删除set中
# s2.add(77);
# print(s2)