天天看點

python-常用的序列結構有(字元串、清單、元組、字典、集合)

 一.基本特點

"""常用的序列結構有:字元串、清單、元組、字典、集合"""
a="abc"   #字元串元素為字元(字元序列)
print(a)

b=[10,20,30,'abc',True]   #清單,元素為任意類型,并且大小和元素可變(任何元素序列)
b=list((1,2,3))   #list可以接收元組、字元串、其他序列類型、疊代器等生成清單
print(b)

c=(1,2,3)   #元組,不能修改元組中的元素(小括号可以省略,如果隻有一個元素并且使用小括号,需要在元素後邊加一個逗号)
c=tuple([2,3,4])   #tuple可以接收清單、字元串、其他序列類型、疊代器等生成元組
print(c)

d={'name':'vivinia','age':18,'job':'programmer'}   #字典,“鍵值對”的無序可變序列(鍵是任意不可變并且不重複資料)
d=dict.fromkeys(['name','age','job'])   #建立值為空的字典
print(d)

e={1,2,3}   #集合,無序可變,元素不能重複
e=set([1,2,2,5,6,6])   #将清單、元組等可疊代對象轉換為集合,如果原來序列存在重複資料,則相同元素隻保留一個
print(e)
           
python-常用的序列結構有(字元串、清單、元組、字典、集合)

二.推導式

""" 推導式:
    是從一個或多個疊代器快速建立序列的一種方法,
    可以将循環和條件判斷結合,
    進而避免冗長的代碼
"""
#清單推導式
print([x*2 for x in range(1,5)])   #[表達式 for item in 可疊代對象]
print([x for x in range(1,5) if x%2==0])   #[表達式 for item in 可疊代對象 if 條件判斷]
#字典推導式
my_text="i love you,i love python,i love computer."   #{key:value for 表達式 in 可疊代對象}
char_count={c:my_text.count(c) for c in my_text}   #c是鍵,my_text.count(c)表示該鍵對應的個數
print(char_count)
#集合推導式
setNum={x for x in range(1,10) if x%3==0}
print(setNum)
#生成器推導式(生成元組)
gnt=(x for x in range(1,100) if x%9==0)   #傳回一個生成器對象,不是傳回元組對象
print(tuple(gnt))   #生成元組
print(tuple(gnt))   #一個生成器隻能運作一次,第二次為空了
           
python-常用的序列結構有(字元串、清單、元組、字典、集合)

經常搞不懂這幾個資料類型,隻挑了比較重要的特性做個筆記,其餘的增删改查大同小異。