python標(biāo)準(zhǔn)數(shù)據(jù)類型:
1,數(shù)字(number)
2,字符串?(string)
3,列表(List)?
4,元組(Tuple)
5,字典(Dictionary)
一,數(shù)字類型
# int(有符號整型)
# long(長整型[也可以代表八進制和十六進制])
# float(浮點型)
# complex(復(fù)數(shù))
二,字符串類型
# python的字串列表有2種取值順序:
# 從左到右索引默認(rèn)0開始的,最大范圍是字符串長度少1
# 從右到左索引默認(rèn)-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]);
三,列表類型
# 列表中值的切割也可以用到變量 [頭下標(biāo):尾下標(biāo)] ,就可以截取相應(yīng)的列表,從左到右索引默認(rèn) 0 開始,從右到左索引默認(rèn) -1 開始,下標(biāo)可以為空表示取到頭或尾。
# 加號 + 是列表連接運算符(只能將兩個列表組合到一起),星號 * 是重復(fù)操作
# a 列表生成器 range(start,stop,step)? start一般由0開始 stop到stop結(jié)束(不包含stop)? step 為步數(shù)
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長度
# 列表生成器練習(xí)
練習(xí)一
?for x in range(1,11):
? ? ?L.append(x*x);? ? ? #輸出 [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
練習(xí)二
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']
四,元組類型
# 元組是另一個數(shù)據(jù)類型,類似于List(列表)。
# 元組用"()"標(biāo)識。內(nèi)部元素用逗號隔開。但是元組不能二次賦值,相當(dāng)于只讀列表。
tuple=(1,2,3)
print(tuple*2);
print(tuple[1]);
# tuple[1]=200;
# print(tuple);? ? #注意:元組不能二次賦值
五,字典類型
#列表是有序的對象集合,字典是無序的對象集合。
#兩者之間的區(qū)別在于:字典當(dāng)中的元素是通過鍵來存取的,而不是通過偏移存取。
#字典用"{ }"標(biāo)識。字典由索引(key)和它對應(yīng)的值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))# 判斷數(shù)據(jù)類型
#補充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,需要占用大量的內(nèi)存,內(nèi)存浪費多。
# 而list相反:
#
# 查找和插入的時間隨著元素的增加而增加;
# 1,占用空間小,浪費內(nèi)存很少。
# 2,所以,dict是用空間來換取時間的一種方法。)
六,set
# set和dict的唯一區(qū)別僅在于沒有存儲對應(yīng)的value,但是,set的原理和dict一樣,所以,同樣不可以放入可變對象,因為無法判斷兩個可變對象是否相等,也就無法保證set內(nèi)部“不會有重復(fù)元素”
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)