天天看點

用python怎麼拷貝元組_第四章 python基礎之list 元組 字典 及拷貝

------------恢複内容開始------------

1.清單list的常用方法:

list 的增删改查,建立空清單 如 cities = []

1)增加       append和insert方法

cities.append('北京') #在清單末尾增加一個元素(依次增加)

cities.insert(0,'上海') #在指定的位置增加元素  角标從0開始

2)删除        pop,remove,clear和del方法

cities.pop(0) #删除指定位置的元素

cities.remove('北京')#删除指定的元素   不能指定位置

cities.clear() #清空list

del cities[-1] #删除指定位置的

3)修改

cities[1]='南京' #修改的時候如果指定的下标不存在,會報錯

4)  查找   指定下标和index count(統計)

print(cities[0]) #指定位置的

print(cities.index('廣州')) #擷取元素的下标,如果找不到那個元素的話,會報錯

print(cities.count('廣州')) #檢視元素在list裡面出現了多少次

list排序相關的一些用法

1)清單元素反轉    reverse()方法

print(my_list.reverse()) #就是把這個list反轉一下    此次列印結果為 none   隻排序無結果 無傳回結果

print(my_list)   # 列印反轉後的結果

2)升序和降序     sort()方法

nums.sort() #排序,升序

nums.sort(reverse=True) #  降序    通過reverse方法

print(nums)   # 數字和字母 字元串都可以排序

3)合并list

print(cities+cities2)#合并list    兩個list相加

4)複制list

print(cities*3) #複制幾次

print('哈哈哈'*3)#字元串也可以複制

5)針對多元數組 可根據位置依次遞進查找

例如:

words = ['view','code','tools',['price','num',198,['hello','usa','吃雞']] ] #二維數組

print(words[-1][-1][1])   #usa

names=[ ['小黑',['小綠',138]],'小紅',['小紫',['小白']]]

len(username)  用來統計該變量的字元長度。

2. .list 切片(list的一種取值方式)

print(nums[1:3])  #顧頭不顧尾

print(nums[1:]) #如果從某個下标開始取,取到末尾結束,那麼末尾的下标可以省略不寫

print(nums[:2]) #如果是從頭開始取,取到後面某個下标結束,那麼開頭的下标可以不寫

print(nums[:]) #取所有的

print(lis[::2]) #步長,隔幾個取一次# 如果步長是正數的話,從左往右邊開始取值

print(lis[::-2]) #步長,隔幾個取一次# 如果步長是負數的話,從右邊往左邊開始取值

print(lis[::-1]) #反轉list

print(lis)#所有值

print(lis[1::-1])# 取值為[2,1]  *list[1’:2’:3’]取值先1’再3’最後2’的順序規律

print(lis[:])#所有值

lis.reverse()  #改變了原來list的值 reverse會将中的值反序寫入

new_list = lis[::-1]  #産生了新的一個list,不會改變原來list的值  會将新值寫入new_list

3.元組tuple(元組也是一個list,他和list的差別是,元組裡面元素無法修改)

#如果元組裡面 隻有一個元素的話,那麼你必須在這個元素後面加一個逗号

t = (1,2,4,5,6,7)   #用小括号括起來

words=(1,)     #隻有一個數字

words2=('abc',)   #隻有一個字元串

print('t',type(t))  #類型為tuple

print('words',type(words))

print('words2',type(words2))

print(t.index(2)) # 通過index()找到元素的下表

print(t.count(2)) #找到元素的個數

4. 字典dict(字典是通過key - value 形式存放資料的)

字典的優點 1、取資料友善2、速度快  格式如:infos  =  {'name':'張流量','sex':'男','addr':'火星','age':180}

查找

print(infos.get('phone'))#取不到這個key的話,就是None

print(infos.get('phone',110))#如果取不到這個key的話,預設就是110  可以添加錯誤傳回結果幫助檢視。

print(infos['phone'])#如果key不存在會報錯(列印相應的value值)

#增

infos['phone']=13611087045 #增加一個key

infos.setdefault('小金庫','2000w')

infos.setdefault('name','鵬妹妹') #如果key存在的話,不會修改原來key裡面的值

infos['name']='鵬妹妹' #如果key存在的話,會修改原來key對應的value

# print(infos)

**字典是無序的

#修改

infos['name']='鵬妹妹'  #直接指定key和value

#删除

# infos.pop('name') #指定key來删除

# infos.popitem() #随機删除一個key

# del infos['phone'] #指定key來删除

# infos.clear()  #清空字典

#方法

# print(infos.values())#擷取到字典所有的value

# print(infos.keys()) #擷取到字典所有的key

# print(infos.items()) # 擷取字典所有的k-v

#直接循環一個字典的話,那麼循環的是字典的key 如:

for p in people:

print(p)

for k,v in people.items():  #循環的時候,同時取key和value

print(k,'======》',v)

print( '123456' in users )   #字典裡面用in來判斷的話,隻是判斷key是否存在

補存内容(拷貝和清單生成式):

#淺拷貝 深拷貝

淺拷貝記憶體位址不變  深拷貝記憶體位址改變

位址改變不一定是淺拷貝 如二維數組

l2 = l[:]#淺拷貝

l2 = copy.deepcopy()#深拷貝

l3 = l.copy()  #淺拷貝  雖然記憶體位址 但不是深拷貝

copy.copy()#淺拷貝

#清單生成式

l = [1,2,3,4,5]

for i in l:

l2.append(str(i))

l2 = [str(i) for i in l]  #和上面實作的功能相同

l3 = [i for i in range(10) if i%2==0]  #後面可以加條件進行判斷

l3=[]

for i in range(10):

if i % 2 == 0:

l3.append(i)

print(l3)