python復合型別 python復合型別

2021-10-11 12:22:33 字數 4827 閱讀 7011

鏈結

list

python的列表的特點:

可以隨時新增和刪除元素

可以做的操作有:切片,新增,刪除,查詢,修改,排序

列表元素可以是不同型別,在型別不同的情況下就無法排序

列表是有序的

#定義小馬列表

li=['twilight','pinkiepie','rainbow dash']

插入:insert(self->list,i->int,x->all)->none

li.insert(1,'rarity')

print("after insert:%s"%li)

刪除remove(self->list,x->all)->none

li.remove('twilight')

print("after remove:%s"%li)

pop(self->list,i->int(default:-1))->all 預設刪除最後乙個

li.pop(1)

print("after pop:%s"%li)

deldel li[2] #表示刪除li中的某乙個值

del li #整個li都刪除

排序:sort(self->list,cmp->[all,all](default:none),key->[all](default:none),reverse->bool(default:false))->none

li.sort()

print("after sort:%s"%li)

倒序:reverse(self->list)->none

li.reverse()

print("after reverse:%s"%li)

合併兩個列表:extend(self->list,t->iterator)->none -----t可以是任何迭代器

li.extend(['twilight','rainbow dash'])

print("after extend:%s"%li)

計算元素的個數:count(self->list,x->all)->int 返回元素的個數,-1為沒有找到

print("rainbow dash個數:%s"%li.count('rainbow dash'))

print("li 元素個數:%s"%len(li))

查詢元素的下標:index(self->list,x->all,start->int,stop->int)->int 如果找不到就報錯

print("第二個rainbow dash在**?%s"%li.index('rainbow dash',2))

#遍歷列表,sys.stdout.write為了不換行輸出

import sys

for i in li: #li.__iter__()是list的迭代器,放在這裡效果一樣

sys.stdout.write(i+",")

print()

tuple

元祖是不可修改的列表

ipattr=("127.0.0.1",9999)

#只有兩個方法:index和count

dict

字典是以鍵值對來表示,鍵是唯一的,可以是數字或者字串,值可以是任意重複的。字典在底層是hash,雜湊表。

就把hash想象成字典,字典的目錄就是一張hash表,不可變,乙個數對應乙個鍵,這裡的數是有序的數,拿到數就能找到值,因為它們是關聯的。而如何找到鍵,只要如何找到這個有序的數中的對應值,就能拿到資料。==字典是無序的==

字典的操作:取值,鍵值分離,鍵值查詢,新增,刪除等

#定義小馬字典

查詢:ponys['ts'] #找到twilight

ponys['ponychild'][2]="little rainbow dash"

get(self->dict,key->(str/int/float),default->all)->all 查詢的內容,返回值為找到的內容,沒有找到返回none,default有定義,則返回返回default的內容

print(ponys.get('ts')) # twilight

print(ponys.get('rd')) # none

print(ponys.get('rd',"rainbow dash")) # rainbow dash

設定:setdefault(self->dict,key->key,default->all)->all 在dict中查詢key,找到後返回value,如果沒找到,自動建立乙個,

並返回none;值預設設為none,default為沒有找到的情況下建立的鍵的值,

ponys.setdefault("ts","rainbow dash")

print(ponys)

迭代:for key in ponys:

print(key)

#迭代的結果為所有key,取值看下面

for key in ponys:

print(ponys[key])

提取所有鍵:keys(self->dict)->iterable(dict_keys) ==返回dict_keys:dict_keys不是列表但可以迭代,必須用list強制轉換成列表,才能使用列表的功能==

提取所有值:values(self->dict)->iterable(dict_values) 同上

提取所有的鍵值,形成元祖列表:items(self->dict)->iterable(dict_items) 每一組鍵和值形成元祖,所有的鍵值元祖形成列表,

但是該列表不是真正的列表,需要強制轉換

print(ponys.keys())

print(ponys.values())

print(ponys.items())

#內容#dict_keys(['ponychild', 'ts', 'pp'])

刪除pop(self->dict,key->key,default->all)->all 刪除指定key,返回value,

如果沒找到key,default如果有內容會返回,否則會報錯

更新update(self->dict,other->all,*arg) ->none

print(ponys)

other

fromkey(self->dict,seq->iterator,value->all)->dict

ponys={}

ponys_name=["ts","pp"]

ponys=ponys.fromkeys(ponys_name,3) #3這個值是被ponys_name中的所有key引用

print(ponys)

# 得到

# 集合

set1=

set2=

print(set1,set2)

#### 新增刪除元素

```python

set1.add("aj")

set1.remove("tw")

#通用的輸出函式

def output(*arg):

fm1="是和的"

fm2="的"

if arg[1]==true:

print(fm2.format(arg[0],"是",arg[2],arg[3]))

elif arg[1]==false:

print(fm2.format(arg[0],"不是",arg[2],arg[3]))

else:

print(fm1.format(arg[0],arg[1],arg[2],arg[3]))

#### 並集 |

```python

set3=set1.union(set2) #set3=set1|set2 set1|=set2

output(set3,set1,set2,"並集")

# 得到:

是和的並集

交集 &

set3=set1.intersection(set2) #set3=set1&set2 intersection_update更新物件,沒有返回值

output(set3,set1,set2,"交集")

# 得到:

是和的交集

差集 -

set3=set1.difference(set2) #set1=set1-set2 difference_update

output(set3,set1,set2,"差集")

set3=set2.difference(set1) #set1=set2-set1

output(set3,set2,set1,"差集")

# 得到:

是和的差集

是和的差集

對稱差集 ^

set3=set1.symmetric_difference(set2) #set1=set1-set2|set2-set1 symmetric_difference_update

output(set3,set1,set2,"差集二") #set1=set1^set2

# 得出:

是和的對稱差集

子集set3=

output(set3,set3.issubset(set1),set1,"子集")

output(set1,set1.issubset(set3),set3,"子集")

# 得出:

set3=

output(set3,set3.issubset(set1),set1,"子集")

output(set1,set1.issubset(set3),set3,"子集")

父集set3=

output(set3,set3.issuperset(set1),set1,"父集")

output(set1,set1.issuperset(set3),set3,"父集")

# 得出:

不是的父集

是的父集

復合型別資料

1 記錄型別 自定義record型別 declare type example record type is record name emp.ename type,salary emp.salary type,dno emp.deptno type 宣告record型別變數 example reco...

C 復合型別

陣列 陣列是一種資料格式,能夠儲存多個同型別的資料。宣告陣列的通用格式 typename arrayname arraysize arraysize指定了元素的個數,它必須是整型常量 20或者const值 也可以是表示式,但是其中的所有值在編譯時必須是已知的,所以說arraysize不是變數,變數的...

go 復合型別

1.陣列 1 陣列是擁有固定長度且擁有零個或者多個相同資料型別元素的序列。2 初始值預設為元素型別的零值 3 如果 出現在陣列長度的位置,則陣列的長度由初始化陣列的元素個數決定 4 陣列長度是陣列型別的一部分,3 int 和 4 int 是不同的型別,不能互相賦值 也就是說陣列長度在編譯時就已經確定...