Python使用中常見問題總結(三)

尊敬的讀者您好:筆者很高興自己的文章能被閱讀,但原創與編輯均不易,所以轉載請必須註明本文出處並附上本文地址超鏈接以及博主博客地址:https://blog.csdn.net/vensmallzeng。若覺得本文對您有益處還請幫忙點個贊鼓勵一下,筆者在此感謝每一位讀者,如需聯繫筆者,請記下郵箱:[email protected],謝謝合作!

 

 

一、字典的常見用法

1、創建字典

① 創建非空字典

dict = {"name": "賀增增" , "idol": "許嵩", "time": "13"}

② 創建空字典     

dict = {}

2、對字典中元素做修改

① 對key爲"time"的值進行修改,若字典中若沒有該key,則創建該鍵值;

dict["time"] = 100

② 對key爲"idol"的值進行刪除

dict.pop("idol") 

3、字典的遍歷

① 默認按鍵名進行遍歷,得到以鍵形式的輸出

for a in dict:
    print(a)

② 和①的結果一樣,得到以鍵形式的輸出

for b in dict.keys():
    print(b)

③ 按值進行遍歷,得到以值形式的輸出

for b in dict.values():     
      print(b)

④ 按鍵值對進行遍歷,得到以元組形式的輸出

for c in dict.items():
      print(c)

⑤ 按鍵值對進行遍歷,得到以鍵名和鍵值的輸出

for k,v in dict.items():      
      print(k,v)

 

二、List的常見用法

1、創建list

① 創建非空list

list = ["賀增增", "許嵩", "許嵩N代弟子"]

② 創建空字典     

list = []

2、對字典中元素做修改

① 爲字典增加元素;

#方式一 append() 追加單個元素到list的尾部
music = ["如果當時", "灰色頭像", "如約而至"]
list.append(music)
print(list)
output:["賀增增", "許嵩", "許嵩N代弟子", [“如果當時”, "灰色頭像", "如約而至"]]

#方式二 extend() 將一個列表中每個元素分別添加到另一個列表中
music = ["如果當時", "灰色頭像", "如約而至"]
list.extend(music)
print(list)
output:["賀增增", "許嵩", "許嵩N代弟子", "如果當時", "灰色頭像", "如約而至"]

#方式三 insert() 將一個元素插入到列表中
list.insert(1,'薛之謙')
print(list)
output:["賀增增", "薛之謙", "許嵩", "許嵩N代弟子"]

#方式四 + 加號,將兩個list相加,會返回到一個新的list對象。
album = [”夢遊計“, ”青年晚報“]
list_new = list + album
print(list_new)
output:["賀增增", "薛之謙", "許嵩", "許嵩N代弟子", ”夢遊計“, ”青年晚報“]

注:方法四與前三種方法的區別,前面三種方法(append, extend, insert)可對列表增加元素的操作,它們沒有返回值,是直接修改了原數據對象。 而方法四是將兩個list相加,需要創建新的list對象,從而需要消耗額外的內存,特別是當list較大時,儘量不要使用“+”來添加list,而應該儘可能使用List的append()方法。 

② 對list的值進行刪除

#方式一 remove() 刪除指定位置的元素
list.remove(2)
print(list)
output:["賀增增", "許嵩N代弟子"]

#方式二 del list[*] 刪除指定元素
del list[0]
print(list)
output:["許嵩", "許嵩N代弟子"]

#方式三 pop(1) 彈出指定倒數位置的元素(默認最後一個元素)
list.pop()
print(list)
output:["賀增增", "許嵩"]

3、列表的遍歷

#方法一
for i in list:
    print ("序號:%s   值:%s" % (list.index(i) + 1, i))

#方法二
for i in range(len(list)):
    print ("序號:%s   值:%s" % (i + 1, list[i]))

#方法三
for i, val in enumerate(list):
    print ("序號:%s   值:%s" % (i + 1, val))

#方法四
for i, val in enumerate(list, 2):
    print ("序號:%s   值:%s" % (i + 1, val))

 

三、txt文本的常見讀取方式

1、按行讀取(with讀取)

with open(filename, 'r', encoding='UTF-8') as f:
     lines = f.readlines()

2、按行讀取(普通讀取)

# 打開文件,循環讀取

lines = open(filename, 'r')
for line in lines:
	print(line)

2、按列讀取(df方式)

# 導入數據
df = pd.read_csv("./data/all_available_features.txt", sep='\001', header=0)

# 將數據按列讀取
df.columns = ["unionid", "gender", "big_room", "big_room_ratio", "single_room", "single_room_ratio",
                  "standard_room", "standard_room_ratio", "family_room", "family_room_ratio", "superior_room",
                  "superior_room_ratio", "other_room", "other_room_ratio", "all_room", "summer_holiday",
                  "summer_holiday_ratio", "winter_holiday", "winter_holiday_ratio", "minor_holiday",
                  "minor_holiday_ratio", "weekend_holiday", "weekend_holiday_ratio", "other_holiday",
                  "other_holiday_ratio", "mem_basic", "mem_outgoing", "mem_marriage", "mem_education",
                  "mem_certification", "mem_stayArea", "mem_stayCity", "mem_age", "mem_sex", "mem_assets",
                  "mem_constellation", "mem_social_stratum", "mem_area", "mem_city", "mem_career",
                  "mem_birthday", "mem_mail", "label"]

# 以ndarray格式按行存儲,X的一行代表一個樣本
X = df[["gender", "big_room", "big_room_ratio", "single_room", "single_room_ratio",
            "standard_room", "standard_room_ratio", "family_room", "family_room_ratio", "superior_room",
            "superior_room_ratio", "other_room", "other_room_ratio", "all_room", "summer_holiday",
            "summer_holiday_ratio", "winter_holiday", "winter_holiday_ratio", "minor_holiday",
            "minor_holiday_ratio", "weekend_holiday", "weekend_holiday_ratio", "other_holiday",
            "other_holiday_ratio", "mem_basic", "mem_outgoing", "mem_marriage", "mem_education",
            "mem_certification", "mem_stayArea", "mem_stayCity", "mem_age", "mem_sex", "mem_assets",
            "mem_constellation", "mem_social_stratum", "mem_area", "mem_city", "mem_career",
            "mem_birthday", "mem_mail"]]

X = np.array(X)

 

四、時間間隔的常見計算方式

1、調用datetime庫進行計算時間間隔

def compare_time(time1, time2):
    d1 = datetime.datetime.strptime(time1, '%Y-%m-%d')
    d2 = datetime.datetime.strptime(time2, '%Y-%m-%d')
    delta = d1 - d2
    print("days is:{}".format(delta.days))

    if delta.days >= 0:
        return delta.days
    else:
        return -1

2、對只包含時間元素的list進行排序

#list_Data將所有的time(如:2015-10-01)存儲起來
list_Data.append(time)
#對只包含時間元素的list_Data進行升序排序
sorted(list_Data, key=lambda date: datetime.datetime.strptime(date, '%Y-%m-%d').timestamp())


 

 

 

日積月累,與君共進,增增小結,未完待續。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章