日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python学习 day6 (3月7日)

發布時間:2023/12/1 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python学习 day6 (3月7日) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#__author : 'liuyang' #date : 2019/3/7 0007 a = ['a' , 'b' , 'c'] b = [] print(a is b ) # 空元組 可以 空列表 不可以 print(tuple(a))

題目:

l1 = [11, 22, 33, 44, 55] #將此列表索引為奇數的對應元素全部刪除 # 錯誤示例 for l in range(len(l1)):print(l)if l % 2==1:#l1.pop(l) # 等同余下 一個是括號 一個是中括號del l1[l] print(l1)# l1 = [11, 22, 33, 44, 55] # del l1[1::2] # print(l1) dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'name': 'alex'} lis = [] # 循環一個字典時,不能改變 字典的大小,否則會報錯

for key in dic.keys(): # if 'k' in key:# del dic[key]print(key)if 'k' in key:# dic.pop(key)lis.append(key)# for li in lis:# del dic[li] # 在后面 刪除 for li in lis:del dic[li] print(dic)

同一類型

小數據池: 理解?

id == is ?兩者之間的id是否相同 ?(is 判斷內存地址是否一樣)(==判斷值是否一樣)

    同一內存地址

? ? ? ? ? ?? 獲取該對象的內存地址

代碼塊:

    一個文件;

    ? 交互式命令:一行代碼

    同一個代碼塊下:字符串的緩存機制,駐留機制:

    背景:同一代碼塊下,遇到初始化對象命令,會實現檢查字典是否有此對應關系.......

    針對的數據類型:int(float) , 大量的str , bool ?,(), None ?

        None--------空列表空元組 空字符 統一指向這個內存地址

    優點:

        節省內存

        提高執行性能

小數據池:

  不同代碼塊?

  在內存中,開辟兩個空間.

  一個空間:-5~256

  一個空間:一定規則的字符串

    <20 ?個位 ? >-1

  針對的數據類型:int str , bool ?,(), None ?

   優點:

        節省內存

        提高執行性能

# 超出范圍了

?數據類型的補充:

int str bool ? lis tuple dict ? ? ? ? ? ? ? ?set

? ?(1)-------->int ?(1,)------------->tuple

int str bool ?包起來 ?

other ------------> ? ?bool ?

    0 '' ?() ?[] ?{} ? ------> ?False ?

list <----> ?tuple ?包起來

list、tuple ------> ?str ? ?sploit

str ---------------> list、tuple ? ?' ?',join(str)

用三種方式創建一個字典:

dic ={'name' : 'liuer'}

    (2)-----> {1:2, 'name':alex}   

    (3)-----> {1:alex , 2:alex , 3:alex}

 

數據類型的補充

  (1,)

  fromkeys([1,2,3] , [])

  循環一個列表 循環一個字典時 ?,不能改變他們的大小,否則會報錯

明天 : 編碼進階 文件操作 ?深淺copy?  

?

str(dict) ?--------> {}

inpre () ?'{}' ? ? ?#程序員用

print() ? # 美化了

  

回顧:字典特點:

1.key是唯一的.

2.key必須是可以哈希的(不可變數據類型:字符串,元組,數值)

3.key是無序的.

3.6中dict的元素有序是解釋器的特點,不是python源碼的特點.

xxx.py

Cpython -> 有序

Jpython? -> 無序

集合:set

實際上就是一種特殊的字典.

所有value都是None的字典,就是集合.

對比字典和集合的特點:

字典

集合

Key唯一

元素唯一

Key可以哈希

元素可以哈希

Key無序

元素無序

如何獲取集合?

1.手動創建集合.

1.創建空集合

d = {}

創建空集合,只有一種方式:調用set函數.

S = set()

?

?

2.創建帶元素集合

S = {1,2,3}

從可迭代對象中(字符串,列表,元組,字典)創建集合.

s = set(‘abc’)

S = set([1,2,3])

S = set((1,2,3))

S = set({‘name’:’Andy’,’age’:10})

?

?

2.通過方法調用

-> str

-> list

-> set

?

集合的操作:

查看集合可用的方法:

[x for x in dir(set) if not x.startswith(‘_’)]

['add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update',

'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']

增:

?? add:如果元素存在,沒有做任何動作.

刪:

Pop() ??? :依次從集合中彈出一個元素,如果集合為空,報錯

Discard(ele) :從集合中刪除指定的元素,如果不存在,什么都不執行

Remove(ele)? :從集合中刪除指定的元素,如果不存在,報錯

Clear()????? :清空

集合的四大常用操作:

并集:union

交集:intersection

差集:difference

對稱差:symmetric_difference

改(更新):

Update :用二者的并集更新當前集合

difference_update:用二者的差集更新當前集合

intersection_update:用二者的交集更新當前集合

symmetric_difference_update:用二者的對稱差集更新當前集合

?

?

判斷功能:

Isdisjoint:判斷兩個集合是否沒有交集

Issubset:判斷當前集合是否是后者的子集

Issuperset:判斷后者是否是當前集合的子集

集合基本沒有單獨取其中元素的需求.

?

集合的使用場景:

1.判斷一個元素是否在指定的范圍之內.

2.方便數學上的集合操作.

并,交,差,對稱差

有簡化寫法:

并:|

交:&

差:-

對稱差:^

?

3.對序列數據類型中的重復元素進行去重

?

如果想遍歷集合中的元素.

通常用for循環.

?

frozenset:凍結的集合

最大的特點:不可變.

?

['copy', 'difference', 'intersection', 'isdisjoint', 'issubset', 'issuperset', 'symmetric_difference', 'union']

少了添加,更新的方法.

?

s = frozenset()

?

s = frozenset('abcabc')

s = frozenset([1,2,3])

s = frozenset((1,2,3))

s = frozenset({'name':'Andy','age':10})

?

集合的四大方法:并,交,差,對稱差.

set,frozenset是否可以混用?

可以!

總結:

如果兩種數據類型混用,方法的主調者的類型決定了最終結果的類型.

?

?

?

frozenset應用場景:

凡是使用到不可改變的數據的場景,都是可以使用frozenset的.

set集合的元素:必須是可以哈希的,set本身不是可以哈希.

但是frozenset是不可變的數據.(可以哈希的),它是可以放到集合中.

set和frozenset可以互相轉換.

?淺 copy ?只 copy 第一層元素 ?: ?

l1 = [1,2,3,[1,2]]

l2 = l1.copy()

改變列表里的列表(第二層)都變 ?改變列表里的數字 ?不變?

深 copy?

l1 = [1,2,3,[1,2]]

l2 = l1.deepcopy()

改變列表里的列表 不變?

不可變得 變化 改值 開辟新的內存空間 ?

轉載于:https://www.cnblogs.com/Doner/p/10488861.html

總結

以上是生活随笔為你收集整理的python学习 day6 (3月7日)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。