python學習7

來源:互聯網
上載者:User

標籤:upd   closed   賦值運算   type   abc   rate   一個   diff   nbsp   

1.在列表和字典的迴圈中,不能直接刪除它們

刪除第1、3位的元素 lis = [11,22,33,44,55]
#方法1‘‘‘lis = [11,22,33,44,55]li = []for i in range(len(lis)):    if i % 2 == 0:        li.append(lis[i])lis = liprint(li)‘‘‘#方法2lis = [11,22,33,44,55]tu = tuple(lis)for i in range(len(lis)):    if i % 2 == 1:        lis.remove(tu[i])print(lis)

刪除字典dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘,‘a3‘:‘v3‘}中相應的索引值對

# dic1 = {}dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘,‘a3‘:‘v3‘}# for i in dic:#     if ‘k‘ not in i:#         dic1.setdefault(i,dic[i])# dic = dic1# print(dic)# l = []# for i in dic:#     if ‘k‘ in i:#         l.append(i)# for i in l:#     del dic[i]# print(dic)

元組

tu1 = (1)  int
tu2 = (1,) tuple

2.集合
集合是可變的,它裡面的元素不可變,集合是無序的且不重複的
集合有增加、刪除、查詢、交並差等操作
1.增加
.add() / .update()
# set1 = set({1,2,3})# set2 = {1,2,3,[3,4],{‘name‘:‘alwx‘}}   #錯的# print(set1,set2)set1 = {‘alex‘,‘wusir‘,‘ritian‘,‘egon‘,‘barry‘,‘barrry‘}#add  加一個元素set1.add(‘女生‘)print(set1)#update  迭代添加set1.update(‘abc‘)print(set1)

2.刪除

.pop()   /  .remove()   / del   /.clear()

# #刪除  pop# print(set1.pop())    #隨機刪除,有傳回值# print(set1)## #按元素刪除  remove# set1.remove(‘alex‘)# print(set1)#清空集合# set1.clear()# print(set1)#del 刪除整個集合# del set1# print(set1)

3.沒有改,查只能按照for迴圈來查,因為集合是無序的

for i in set1:    print(i)

4.交集,並集,反交集,差集,子集,超集

&, .intersection()   

 |  , .union()

^  ,  .symmetric_difference()

set1 - set2   , .difference()

set1 < set2 返回bool值,就是比較集合的內含項目關聯性

#特殊之處   可以求交並差集#交集set1 = {1,2,3,4,5}set2 = {4,5,6,7,8}print(set1 & set2) #{4,5}print(set1.intersection(set2)) #{4,5}set3 = set1 & set2#並集print(set1 | set2)print(set2.union(set1)).#反交集   除了交集之外的並集print(set1 ^ set2)print(set1.symmetric_difference(set2))#差集print(set1 - set2)  #set1專屬的print(set1.difference(set2))#子集與超集  比較內含項目關聯性,返回bool值set1 = {1,2,3}set2 = {1,2,3,4,5}print(set1 < set2)print(set1.issubset(set2))
View Code

5.例題  去除列表中的重複元素

li = [1,2,33,33,2,1,4,5,6,6]set1 = set(li)print(set1)li = list(set1)print(li)

集合可以凍結,變成不可變資料類型

#set 本身是可變的,內部元素不可變,將set凍結s = frozenset(‘barry‘)   #變成不可變資料類型,唯讀,無序print(s,type(s))for i in s:    print(i)

6.深淺copy

賦值運算後,兩個變數指向同一個記憶體位址,改變一個會引起另外一個的改變

copy運算後,兩個變數記憶體位址不相同,改變 一個不會引起另外一個的改變

l1 = [1,2,3]l2 = l1l1.append(‘a‘)print(l1,l2)#copyl1 = [1,2,3]l2 = l1.copy()print(l1,l2)print(id(l1),id(l2))l2.append(‘a‘)print(l1,l2)[1, 2, 3, ‘a‘] [1, 2, 3, ‘a‘][1, 2, 3] [1, 2, 3]1921628470728 1921628348040[1, 2, 3] [1, 2, 3, ‘a‘]

copy運算後,裡面   列表    的記憶體位址不變

l1 = [1,2,[4,5,6],3]l2 = l1.copy()print(l1,id(l1))print(l2,id(l2))l1.append(‘a‘)print(l1,l2)l1[2].append(‘a‘)print(l1,l2)print(id(l1[2]))print(id(l2[2]))###################[1, 2, [4, 5, 6], 3] 1921627608072[1, 2, [4, 5, 6], 3] 1921628470728[1, 2, [4, 5, 6], 3, ‘a‘] [1, 2, [4, 5, 6], 3][1, 2, [4, 5, 6, ‘a‘], 3, ‘a‘] [1, 2, [4, 5, 6, ‘a‘], 3]19216284708561921628470856

 

深度copy   列表的記憶體位址改變了,兩個列表不相互影響

但是   l2 = l1[:]  賦值運算會導致兩個列表的記憶體位址不一樣,但是值卻會相互影響而改變

import copyl1 = [1,2,[4,5,6],3]l2 = copy.deepcopy(l1)print(l1,id(l1))print(l2,id(l2))l1[2].append(‘a‘)print(l1,l2)l1 = [1,[1],2,3,4]l2 = l1[:] **********************l1[1].append(‘a‘)print(l1,id(l1))print(l2,id(l2))print(l1[1] is l2[1])#########################[1, 2, [4, 5, 6], 3] 1921630006344[1, 2, [4, 5, 6], 3] 1921627608072[1, 2, [4, 5, 6, ‘a‘], 3] [1, 2, [4, 5, 6], 3][1, [1, ‘a‘], 2, 3, 4] 1921628470856[1, [1, ‘a‘], 2, 3, 4] 1921630006344True

迴圈輸出資料行表元素和它的序號

li = [‘alex‘,‘taibai‘,‘wusir‘,‘egon‘]for i in li:    print(li.index(i) + 1,i)for index,i in enumerate(li,1):    print(index,i)

 

python學習7

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.