python學習之路3

1. 字典操做

字典一種key - value 的數據類型。linux

語法:windows

1 info = {
2     'car01': "Camry",
3     'car02': "Teana",
4     'car03': "Accord",
5 }

字典的特性:測試

  • 字典是無序的
  • key必須是惟一

增長spa

>>> info["car04"] = "q50"
>>> info
{'car01': 'Camry', 'car02': 'Teana', 'car03': 'Accord', 'car04': 'q50'}

修改code

>>> info["car01"] = "凱美瑞"
>>> info
{'car01': '凱美瑞', 'car02': 'Teana', 'car03': 'Accord', 'car04': 'q50'}

刪除blog

>>> info
{'car01': '凱美瑞', 'car02': 'Teana', 'car03': 'Accord', 'car04': 'q50'}
>>> info.pop("car01")
'凱美瑞'
>>> info
{'car02': 'Teana', 'car03': 'Accord', 'car04': 'q50'}
>>> info
{'car02': 'Teana', 'car03': 'Accord', 'car04': 'q50'}
>>> del info["car02"]
>>> info
{'car03': 'Accord', 'car04': 'q50'}
#隨機刪除
>>> info
{'car03': 'Accord', 'car04': 'q50'}
>>> info.popitem()
('car04', 'q50')
>>> info
{'car03': 'Accord'}

查找資源

>>> info
{'car01': 'Camry', 'car02': 'Teana', 'car03': 'Accord'}
>>> "car01" in info
True
>>> info.get("car01")
'Camry'
>>> info["car01"]
'Camry'
>>> info["car04"]#不存在key的時候get獲取不報錯顯示空值
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'car04'
>>> info.get("car04")

循環rem

#方法1
for key in info:
    print(key,info[key])

#方法2
for k,v in info.items(): #會先把dict轉成list,數據裏大時莫用
    print(k,v)

2. 集合

集合是一個無序的,不重複的數據組合,它的主要做用以下:get

一、去重,把一個列表變成集合,就自動去重了it

二、關係測試,測試兩組數據以前的交集、差集、並集等關係

s = set([3,5,9,10])      #建立一個數值集合  
  
t = set("Hello")         #建立一個惟一字符的集合  


a = t | s          # t 和 s的並集  
  
b = t & s          # t 和 s的交集  
  
c = t – s          # 求差集(項在t中,但不在s中)  
  
d = t ^ s          # 對稱差集(項在t或s中,但不會同時出如今兩者中)  
  
   
  
基本操做:  
  
t.add('x')            # 添加一項  
  
s.update([10,37,42])  # 在s中添加多項  
  
   
  
使用remove()能夠刪除一項:  
  
t.remove('H')  
  
  
len(s)  
set 的長度  
  
x in s  
測試 x 是不是 s 的成員  
  
x not in s  
測試 x 是否不是 s 的成員  
  
s.issubset(t)  
s <= t  
測試是否 s 中的每個元素都在 t 中  
  
s.issuperset(t)  
s >= t  
測試是否 t 中的每個元素都在 s 中  
  
s.union(t)  
s | t  
返回一個新的 set 包含 s 和 t 中的每個元素  
  
s.intersection(t)  
s & t  
返回一個新的 set 包含 s 和 t 中的公共元素  
  
s.difference(t)  
s - t  
返回一個新的 set 包含 s 中有可是 t 中沒有的元素  
  
s.symmetric_difference(t)  
s ^ t  
返回一個新的 set 包含 s 和 t 中不重複的元素  
  
s.copy()  
返回 set 「s」的一個淺複製

 

 

3. 文件操做

對文件操做流程

一、打開文件,獲得文件句柄並賦值給一個變量

二、經過句柄對文件進行操做

三、關閉文件 

 

基本操做

f = open('lyrics') #打開文件
first_line = f.readline()
print('first line:',first_line) #讀一行
print('我是分隔線'.center(50,'-'))
data = f.read()# 讀取剩下的全部內容,文件大時不要用
print(data) #打印文件
 
f.close() #關閉文件

 

打開文件的模式有:

  • r,只讀模式(默認)。
  • w,只寫模式。【不可讀;不存在則建立;存在則刪除內容;】
  • a,追加模式。【可讀;   不存在則建立;存在則只追加內容;】

"+" 表示能夠同時讀寫某個文件

  • r+,可讀寫文件。【可讀;可寫;可追加】
  • w+,寫讀
  • a+,同a

"U"表示在讀取時,能夠將 \r \n \r\n自動轉換成 \n (與 r 或 r+ 模式同使用)

  • rU
  • r+U

"b"表示處理二進制文件(如:FTP發送上傳ISO鏡像文件,linux可忽略,windows處理二進制文件時需標註)

  • rb
  • wb
  • ab

with語句

爲了不打開文件後忘記關閉,能夠經過管理上下文,即:

with open('log','r') as f:
     
    ...

 

如此方式,當with代碼塊執行完畢時,內部會自動關閉並釋放文件資源。

在Python 2.7 後,with又支持同時對多個文件的上下文進行管理,即:

with open('log1') as obj1, open('log2') as obj2:
    pass
相關文章
相關標籤/搜索