1. 程式人生 > >Python基礎2 字符串、列表、字典、集合等操作

Python基礎2 字符串、列表、字典、集合等操作

list 其他 查看 拼接 rep 之前 反轉 轉換成 title

列表、元祖操作

列表

語法:

name = [jack, tom, bob]

列表切片

列表切片的特點是“顧頭不顧尾”

>>> name = [jack, tom, bob]
>>> name[:]
[jack, tom, bob]
>>> name[1:]
[tom, bob]
>>> name[1:2]
[tom]
>>> name[:-1]
[jack, tom]
>>> name[::2]
[jack, bob
] >>> name[0::2] [jack, bob] >>> name[1::2] [tom]

追加

>>> name
[jack, tom, bob]
>>> name.append(ann)
>>> name
[jack, tom, bob, ann]

插入

>>> name
[jack, tom, bob, ann]
>>> name.insert(0, alex)
>>> name
[
alex, jack, tom, bob, ann]

修改

>>> name
[alex, jack, tom, bob, ann]
>>> name[0] = xiaoming
>>> name
[xiaoming, jack, tom, bob, ann]

刪除

# pop刪除,以索引刪,默認不填寫索引刪除列表最後一個元素
>>> name
[xiaoming, jack, tom, bob, ann]
>>> name.pop()
ann >>> name [xiaoming, jack, tom, bob] >>> name.pop(-1) bob >>> name.pop(0) xiaoming >>> name [jack, tom] # remove刪除,以字符串刪 >>> name.remove(tom) >>> name [jack] # del刪除 >>> name [jack] >>> del name[0] >>> name []

擴展

>>> l1 = [1,2,3]
>>> l2 = [4,5]
>>> l1.extend(l2)
>>> l1
[1, 2, 3, 4, 5]

拷貝

>>> l2 = l1.copy()
>>> l2
[1, 2, 3, 4, 5]

統計

>>> l1
[1, 2, 3, 4, 5]
>>> l1.count(1)
1

排序和反轉

# 排序,Python3中不同數據類型不能一起排序
>>> l = [3,2,1,4,7,0]
>>> l.sort()
>>> l
[0, 1, 2, 3, 4, 7]

# 反轉
>>> l
[0, 1, 2, 3, 4, 7]
>>> l.reverse()
>>> l
[7, 4, 3, 2, 1, 0]

獲取索引

>>> l
[7, 4, 3, 2, 1, 0]
>>> l.index(3)
2

元祖

元祖又稱為可讀的列表,一但創建不能修改,它只有2個方法,一個是count,一個是index

語法:

name = (jack, tom)


字符串操作

特性不可修改

print(name.capitalize())        # 首字母大寫
print(name.count("a"))          # 計算某個字符在字符串中出現的次數
print(name.center(50, "-"))     # 居中打印
print(name.encode(utf-8))     # 字符串轉換成bytes類型
print(name.endswith("en"))      # 判斷字符串以什麽結尾
print(name.expandtabs())        # 將tab轉多少個空格
print(name.find(c))           # 從左側查找索引
print(name.rfind(c))           # 從右側查找索引
print("abc123".isalnum())       # 是否為數字和字母
print("abc".isalpha())          # 是否為數字
print("1".isdecimal())          # 是否為十進制
print("123".isdigit())          # 是否為整數
print("12a".isidentifier())     # 是否為合法的變量名
print("abc".islower())          # 是否為小寫
print("abc".isupper())          # 是否為大寫
print("123".isnumeric())        # 是否只有數字
print(" ".isspace())            # 是否為空格
print("My Name Is".istitle())   # 是否每個首字母都大寫
print("My Name Is".isprintable())   # 是否能打印
print("+".join("abc"))          # 拼接字符串
print(name.ljust(50, "*"))      # 長度不到50,後面用*號補齊
print(name.rjust(50, "*"))      # 長度不到50,前面用*號補齊
print("ALEX".lower())           # 變小寫
print("alex".upper())           # 變大寫
print(" jack  ".lstrip())       # 去掉開頭空格
print(" jack  ".rstrip())       # 去掉結尾空格
print(" jack  ".strip())        # 去掉開頭和結尾空格
print("jaaaiachen".replace("a", "x", 1))   # 字符串替換
print("abcde".split("a"))       # 分割成列表
print("1+2\n+3+4".splitlines()) # 以換行符分割成列表
print("Jack".swapcase())        # 反轉大小寫
print("abc".title())            # 變成一個title
print("abc".zfill(50))          # 不夠前面補零

字典操作

字典一種key - value 的數據類型,使用就像我們上學用的字典,通過筆劃、字母來查對應頁的詳細內容。

語法:

d = {
    k1: v1,
    k2: v2,
}

字典的特性:

dict是無序的

key必須是唯一的,so 天生去重

增加

>>> d = {k1: v1, k2: v2}
>>> d
{k2: v2, k1: v1}
>>> d[k3] = v3
>>> d
{k3: v3, k2: v2, k1: v1}

修改

>>> d
{k3: v3, k2: v2, k1: v1}
>>> d[k1] = v11111
>>> d
{k3: v3, k2: v2, k1: v11111}

刪除

# pop刪除
>>> d
{k3: v3, k2: v2, k1: v11111}
>>> d.pop(k3)
v3
>>> d
{k2: v2, k1: v11111}

# del刪除
>>> d
{k3: v3, k2: v2, k1: v11111}
>>> del d[k3]
>>> d
{k2: v2, k1: v11111}

# 隨機刪除
>>> d
{k2: v2, k1: v11111}
>>> d.popitem()
(k2, v2)
>>> d
{k1: v11111}

查找

>>> d
{k3: v3, k2: v2, k1: v1}

# 查看k1是否在字典d中,存在為True,不存在為False
>>> k1 in d
True

# get方式取k1如果有則取到值,沒有則設置為None
>>> d.get(k1, None)
v1
>>> d.get(xxx, None)

# 直接取值,k1不存在則報錯
>>> d[k1]
v1

其他

>>> d
{k3: v3, k2: v2, k1: v1}
>>> d.keys()
dict_keys([k3, k2, k1])
>>> d.values()
dict_values([v3, v2, v1])
>>> d.items()
dict_items([(k3, v3), (k2, v2), (k1, v1)])

# 循環字典方式1
for k in d:
    print(k, d[k])

# 循環字典方式2
for k, v in d.items():
    print(k, v)

# 方式1好於方式2,原因一目了然,上面的d.items()是將字典先轉換為列表,這樣如果字典較大的話,會很慢

集合操作

集合是一個無序的,不重復的數據組合,它的主要作用如下:

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

關系測試,測試兩組數據之前的交集、差集、並集等關系

list_1 = [1,4,5,7,3,6,7,9]
list_1 = set(list_1)
 
list_2 = set([2,6,0,66,22,8,4])
print (list_1,list_2)
‘‘‘
#求交集
print (list_1.intersection(list_2))
#求並集
print (list_1.union(list_2))
#求差集,1裏面有2裏面沒有
print (list_1.difference(list_2))
#求子集,1是2的子集
print (list_1.issubset(list_2))
#求父集,1是2的父集
print (list_1.issuperset(list_2))
#求對稱差集,兩個互相沒有的,去掉重復的
print (list_1.symmetric_difference(list_2))
#判斷是否有交集,有為false,無為true
print (list_1.isdisjoint(list_2))
‘‘‘
 
#交集
print (list_1 & list_2)
#並集
print (list_1 | list_2)
#差集
print (list_1 - list_2)
#對稱差集
print (list_1 ^ list_2)
 
#添加
list_1.add(999)
list_1.update([222,223,224])
#刪除
list_1.remove(999)  #不存在報錯
list_1.discard(888) #不存在不報錯
#長度
len(list_1)
#測試x是否是a的成員
999 in list_1
#測試x是否不是a的成員
999 not in list_1

Python基礎2 字符串、列表、字典、集合等操作