1. 程式人生 > >Python基礎(模塊初識、字符串、列表、元組、字典的用法)

Python基礎(模塊初識、字符串、列表、元組、字典的用法)

tde sort 開始 添加 isalnum 衢州 pca ascii碼表 單個

模塊(Module)初識

python模塊是一個python文件,以.py結尾。模塊中定義了一些變量及函數,可以在需要的時候引用模塊,調用其中的變量及函數。可以調用系統模塊或導入第三方模塊調用,也可以自行編寫模塊。

1 # 顯示系統中模塊存放的路徑
2 import sys  # 引入模塊
3 print(sys.path)  # 調用sys模塊中的函數

字符串(String)及其函數

字符串是python中最常用的數據類型之一,可以適用引號(‘或“)創建,以下為字符串的大部分函數。

 1 name = my name is {n},age is {a}  # 創建一個字符串變量
 2
print(name.count(m)) # 統計m的數量 3 print(name.capitalize()) # 將第一個字母大寫 My name is {n},age is {a} 4 print(name.center(50, *)) # 輸出50個字符,不足用*號補齊,將字符串居中 5 print(name.encode()) # 將字符串編碼為二進制,可以使用decode()函數對二進制字符串做解碼 6 print(name.endswith(tt)) # 字符串是否以tt結尾,返回bool值 7 print(my\tname is.expandtabs(30)) #
字符串中的tab為30個空格 8 print(name.format(n=catty, a=23)) # 輸出結果 my name is catty,age is 23 9 print(name.format_map({n: catty, a: 23})) # 輸出結果 my name is catty,age is 23 10 print(name.find(my)) # 查找,若在字符串中找不到目標字符串返回-1 11 print(23.isdigit()) # 字符串是否為整數,返回bool值 12 print(name.index(my)) #
與find功能一樣,但若在字符串中找不到目標字符串則報錯 13 print(124.isalnum()) # 字符串是否由數字或字母組成,返回bool值 14 print(dsfdsewr.isalpha()) # 字符串是否由純字母組成,返回bool值 15 print(0x9e8f.isdecimal()) # 檢查字符串是否只包含十進制字符,返回bool值 16 print(_dfoiewfjei.isidentifier()) # 判斷是否是一個合法的標識符,但系統關鍵字無法判斷 17 print(sdjfoiA.islower()) # 判斷字符串是否全部為小寫字符 18 print(654623sdoi.isnumeric()) # 檢測字符串是否只由數字組成 19 print(ioew.isprintable()) # 是否可打印,linux中tty無法打印 20 print(‘‘.isspace()) # 是否是純空格 21 print(My Name .istitle()) # 是否每個單詞首字符大寫 22 print(SFEGE.isupper()) # 是否全部為大寫字母 23 print(+.join([1, 2, e])) # 輸出結果 1+2+e 24 print(name.ljust(50, *)) # 將字符串在右側使用*補齊50個字符 25 print(name.rjust(50, *)) # 將字符串在左側使用*補齊50個字符 26 print(name.lower()) # 轉為小寫 27 print(name.upper()) # 轉為大寫 28 print(-------------) 29 print( \n alex\n.lstrip()) # 刪除字符串左側的空格及換行 30 print(-------------) 31 print( \n alex\n.rstrip()) # 刪除字符串右側的空格及換行 32 print(-------------) 33 print( \n alex\n.strip()) # 刪除字符串兩側的空格及換行 34 print(-------------) 35 # maketrans()與translate()兩個函數搭配使用 36 p = str.maketrans(abcdefg, *%UE%@M) # 編碼 37 print(apple very good.translate(p)) # 翻譯 38 39 print(name.partition( )) # 按照參數的字符串(空格),將原始字符串切割為3部分 40 print(siiiioiefi.replace(i, b, 5)) # 將字符串中的i替換為b,替換5次 41 print(sdioewawd.rfind(w)) # 從右側查找第一個w,返回其位置,若在字符串中找不到目標字符串返回-1 42 print(sdioewawd.rindex(w)) # 從右側查找第一個w,返回其位置,若在字符串中找不到目標字符串則報錯 43 print(apple very good.rpartition( )) 44 print(apple very good.rsplit( )) 45 print( \n alex\n2483.splitlines()) # 按行分割 46 print(siiiioiefi.startswith(efo)) # 字符串是否以efo開頭,返回bool值 47 print(My Name .swapcase()) # 輸出結果 mY nAME 48 print(apple very good.title()) # 輸出結果 Apple Very Good 49 print(apple very good.zfill(50)) # 左側用0填充

列表(List)及其函數

列表是python最基礎的數據結構,是一個有序的元素集合;列表中每個元素都有其索引,從0開始計數即第一個元素的索引為0;列表可以做嵌套,即列表中以子列表作為元素;列表中的元素可以做增、刪、改、查等操作,具體函數如下。

 1 zj = [杭州市, 湖州市, 嘉興市, 衢州市, 紹興市, 臺州市, 溫州市, 舟山市]
 2 list_t = [a, b, 3, 4]
 3 
 4 print(zj)  # 打印整個列表
 5 for i in zj:  # 循環打印列表
 6     print(i)
 7 # cut
 8 print(zj[4])  # 取list中第五個元素
 9 print(zj[2:6])  # 取list中第三到第六個元素
10 print(zj[:3])  # 取list中第一到第三個元素
11 print(zj[-1])  # 取list中最後一個元素
12 print(zj[-2:])  # 取list中倒數兩個元素
13 print(zj[0:-1:2])  # 隔一個元素打印一次,從第一個元素打印至倒數第二個元素,步長為2
14 print(zj[::2])  # 隔一個元素打印一次,從第一個元素打印至最後一個元素,步長為2
15 # insert
16 zj.append(test)  # 在list最後追加
17 zj.insert(2, retest)  # 在list第三位插入元素
18 # alter
19 zj[3] = jinhuashi  # 對第四個元素進行修改
20 # delete
21 zj.remove(衢州市)  # 刪除‘衢州市’這個元素
22 zj.pop()  # 默認彈出最後一個元素
23 zj.pop(1)  # 彈出第二個元素
24 del zj[5]  # 刪除第六個元素
25 del zj  # 刪除列表
26 # other
27 print(zj[zj.index(衢州市)])  # 查找‘衢州市’這個元素在列表中的索引,將這個索引位置的元素打印
28 print(zj.count(杭州市))  # 統計‘杭州市’這個元素在list中出現的次數
29 zj.reverse()  # 反轉
30 zj.sort()  # 排序(按ascii碼表)
31 zj.clear()  # 清空list
32 zj.extend(list_t)  # 將list_t與zj合並

淺談列表的淺copy和深copy

 1 import copy
 2 
 3 zj = [杭州市, 湖州市, 嘉興市, 衢州市, 紹興市, [越城區, 柯橋區], 臺州市, 溫州市, 舟山市]
 4 
 5 # 淺copy,只copy列表的第一層,若列表中存在子列表,第一層存儲的是子列表的內存地址,故淺copy只能copy子列表的內存地址,
 6 # 那麽無論是修改原列表的子列表中元素,還是修改新列表的子列表中元素,兩個list中的子列表的元素都會改變
 7 zj2 = zj.copy()
 8 zj[2] = jiaxingshi
 9 zj[5][0] = yuechengqu
10 print(zj)
11 print(zj2)
12 # 淺copy的三種方式
13 zj1 = copy.copy(zj)
14 zj2 = zj[:]
15 zj3 = list(zj)
16 # 深copy,需要引入copy模塊,調用其中的deepcopy()函數,深copy將會copy子列表中的具體元素而不是只coyp子列表的內存地址
17 zj2 = copy.copy(zj)  # 此函數等同於淺copy
18 zj3 = copy.deepcopy(zj)  # 深copy,完全克隆
19 zj[2] = jiaxingshi
20 zj[5][0] = yuechengqu
21 print(zj)
22 print(zj2)
23 print(zj3)

元組(Tuple)及其函數

元組的使用方法基本與列表一樣,唯一的區別是元組中的元素不可修改(修改包括增加元素、修改元素值、刪除元素值),可將元組視為只讀列表。元組的定義即其函數如下。

1 data = (python,)
2 names = (catty, test, catty)  # 元組 相當於只讀列表
3 print(names[0:2])  # 元組切片
4 print(names[1])  # 單個元素打印
5 tup = data + names  # 雖然元組不可修改,但可以將兩個元組進行連接組合
6 print(tup)
7 print(names.count(catty))  # 統計該元素在元組中出現的次數
8 print(names.index(test))  # 返回該元素第一次出現在元組中的位置

另外,當需要創建只有一個元素的元組時,需要在元素後添加逗號,否則創建出的不是元組而是字符串,可以通過查看變量類型進行驗證。

1 data1 = (python)
2 print(type(data1))  # 輸出結果 <class ‘str‘>
3 data2 = (python,)
4 print(type(data2))  # 輸出結果 <class ‘tuple‘>

字典(Dictionary)及其函數

字典是另一種可變容器模型,且可存儲任意類型對象。字典中的元素成對存在,一個鍵(key)對應一個值(value),中間用冒號(:)連接,每對鍵值用逗號分開,最後用花括號({})括起來。字典中也可以嵌套。

 1 info = {
 2     stu001: 張三,
 3     stu002: 李四,
 4     stu003: 王五
 5 }
 6 
 7 print(info)
 8 
 9 # select item
10 print(info[stu001])
11 # alter item
12 info[stu002] = tomcat
13 # add item
14 info[stu004] = nginx
15 print(info)
16 # delete item
17 del info[stu003]
18 print(info)
19 info.pop(stu001)
20 print(info)
21 info.popitem()  # 隨機彈出一個元素
22 print(info)

關於字典中鍵值的查找

1 info[stu005]  # 若字典中不存在‘stu005‘,則程序報錯
2 print(info.get(stu005))  # 一個安全的查找元素的方式,若字典中不存在則返回none,存在則返回其對應的值
3 print(stu003 in info)  # info.has_key(‘stu003‘) python2.x  判斷字典中是否存在某key值,返回bool值

關於字典的遍歷

1 for i in info:
2     print(i, info[i])  # 此種遍歷方式效率更高
3 
4 for k, v in info.items():
5     print(k, v)  # 此遍歷方式會先將每對鍵值轉換為列表,再輸出打印

字典的其他操作

 1 info = {
 2     stu001: 張三,
 3     stu002: 李四,
 4     stu003: 王五
 5 }
 6 
 7 info2 = {
 8     stu003: zhaoliu,
 9     sut004: sdifoe,
10     stu006: quit
11 }
12 
13 info.update(info2)  # 按照info2更新info,若找到相同key值,則將對應的info2的value值賦給info,若找不到key值則插入info
14 print(info)
15 print(info.items())  # 將字典轉為列表
16 c = dict.fromkeys([a, b, c], test)
17 print(c)
18 c = dict.fromkeys([a, b, c], [1, {name: tom}, 4444])
19 print(c)
20 c[a][1][name] = lily  # 類似淺copy機制
21 print(c)

嵌套字典的相關操作

 1 info = {
 2     杭州: {
 3         西湖: [免費, 三潭映月],
 4         靈隱寺: [香火旺, 得道高僧],
 5         北高峰: [周末踏青好去處, 空氣好],
 6     },
 7     上海: {
 8         外灘: [人山人海, 繁華]
 9     },
10     南京: {
11         清涼山: [雨花石早市, 郁郁蔥蔥]
12     }
13 }
14 info[杭州][靈隱寺][1] = 收費
15 info.setdefault(無錫, {黿頭渚: [櫻花, 太湖]})  # 去字典裏找這個key,若找不到則創建新值
16 info.setdefault(南京, {whatever: [1, 2]})  # 去字典裏找這個key,找到了則返回原值
17 print(info)

Python基礎(模塊初識、字符串、列表、元組、字典的用法)