相關類型操作
- 字符串
# 字符串對象是不可變對象
s1 = 'i love you more than'
s2 = ' you love me '
# 根據下標取得字符
print(s1[0])
# 字符串拼接
s = s1 + s2
# 查找字符串,返回第一個匹配到的下標
print(s1.find('o'))
# 從右查找,返回字符出現的最高位下標
print(s1.rfind('o'))
# 返回首字母大寫的字符串版本
print(s.capitalize())
# 單詞首字母大寫
print(s.title())
# 去除左右空白
print(s2.strip())
# 去除有空白
print(s2.rstrip())
# 去除左空白
print(s2.lstrip())
# 獲取字符串第一次出現的下標,如果沒有匹配到的substr則會出錯
print(s.index('love'))
# 統計字符出現的次數
print(s.count('lo'))
# 切割字符串,返回一個列表,可以指定切割次數
print(s1.split(' ', maxsplit=1))
# 從右切割
print(s1.rsplit(' ', maxsplit=1))
# 按行切割,返回一個列表
s4 = '''abc
def
ghk
'''
print(s4.splitlines())
# 轉大寫
print(s.upper())
# 轉小寫
print(s.lower())
# 按特定字符拼接字符串
s3 = ' '.join(['i', 'love', 'you'])
print(s3)
# 判斷是否以什麼開頭
print(s1.startswith('i'))
# 判斷是否以什麼結尾
print(s1.endswith('i'))
# 大小寫轉換
print(s1.swapcase())
- 切片(序列都可以,必須是有序的)
s = 'abcdefg'
# 從開頭進行提取,下標從0開始
print(s[0])
# 從末尾進行提取,下標從-1開始
print(s[-1])
# 切片
# 格式:s[開始:結束:步進]
print(s[1:3])
# 當一邊的邊界省略,則提取到改側的邊緣
print(s[1:])
print(s[:4])
print(s[1:-2])
print(s[:-3])
print(s[-3:])
# 指定步進值,默認爲1
print(s[::2])
# 逆序提取
print(s[::-1])
- 列表操作
lt = [1, 7, 8, 9, 2, 3, 4, 5, 0]
# print(lt, type(lt))
# 列表是有序的,可重複的
# 通過下標獲取元素
print(lt[0])
# 通過append()在列表末尾添加元素
lt.append(1)
print(lt)
# 拷貝列表,返回一個新列表
lt1 = lt.copy()
print(lt1, id(lt), id(lt1))
# 統計值出現的次數
num = lt1.count(1)
print(num)
# 移除從下標0開始匹配到的元素
lt1.remove(1)
print(lt1)
# 通過可迭代對象追加元素
lt1.extend([1, 2, 3])
print(lt1)
# 獲取第一個匹配到的元素的下標
print(lt1.index(1))
# 在下標處插入元素
lt1.insert(0, 1)
print(lt1)
# 彈出元素(默認末尾元素)
print(lt1.pop(0))
print(lt1.pop())
# 反轉列表元素
lt1.reverse()
print(lt1)
# 對列表排序,默認升序,沒有任何參數
lt1.sort()
print(lt1)
-
元組操作
# tp1 = (1, 2, 3) # tp1 = (1,) tp1 = 1, 2, 3 tp2 = (4, 5, 6) # 可以直接拼接在一起 # tp3 = tp1 + tp2 # print(tp3, type(tp3)) # 重複指定次數 tp4 = tp1 * 3 print(tp4) # 統計元素個數 print(len(tp4)) tp = (1, 2, 3, 4, 5, 6) # 切片操作 print(tp[0], tp[-1]) print(tp[1:-1]) # 獲取指定元素的索引 print(tp.index(3)) # 統計元素出現的次數 print(tp.count(3)) # 最大值 print(max(tp)) # 最小值 print(min(tp))
-
集合操作
s = {'a', 'b', 'b', 'd', 'e', 'f'} # 添加元素 s.add('g') # 刪除元素 # s.remove('a') # 刪除不存在元素會報KeyError錯 # s.remove('z') # 刪除元素,元素存在則刪除,不存在也不報錯 s.discard('z') # 返回並刪除,元素是隨機的 # print(s.pop()) # 清空元素 s.clear() # print(s) s1 = {'a', 'b', 'c'} s2 = {'c', 'd', 'e', 'f', 'g'} # 並集 # print(s1.union(s2)) # 交集 # print(s1.intersection(s2)) # 求交集,並用交集覆蓋原來的集合 # s1.intersection_update(s2) # 差集 # print(s1.difference(s2)) # 求差集,並用差集覆蓋原來的集合 # s1.difference_update(s2) # print(s1) # 判斷是否沒有交集 print(s1.isdisjoint(s2)) # 判斷是否是另一集合的子集 print(s1.issubset(s2)) # 判斷是否是另一集合的父集/超集 print(s2.issuperset(s1))
-
字典操作
d = {'name': 'xiaoming', 'age': 20} # 獲取元素 # 有就返回對應的值,沒有就報KeyError錯 print(d['name']) # 有就返回對應的值,沒有就返回None,可以指定默認值 print(d.get('namexxx', '默認值')) # 修改元素 # 鍵存在則修改對應的值 d['name'] = 'xiaohei' # 鍵不存在則添加鍵值對 d['height'] = 180 # 更新:存在的鍵會覆蓋,不存在的鍵會添加 d.update({'name': 'xiaobai'}) # 刪除元素 # del d['height'] # 返回並刪除 print(d.pop('age')) # 清空元素 d.clear() print(d)
-
字符串格式化
# 格式化
# 第一種:老式的
# %s:字符串
# %d:整型
# %f:浮點
# %c:字符
name = 'Jack'
like = 'Tom'
age = 18
print("I'm %s, %d years old. Like %s." % (name, age, like))
# 第二種 format
# 默認按順序指定
print("I'm {}, {} years old. Like {}.".format(name, age, like))
# 自定義位置
print("I'm {2}, {1} years old. Like {0}.".format(name, age, like))
# 變量形式指定
print("I'm {a}, {b} years old. Like {c}.".format(a=name, b=age, c=like))
# 第三種 f格式化
print(f"I'm {name}, {age} years old. Like {like}.")
- 數據類型轉換
# 隱式類型轉換:不需要聲明
print(3/2) # >>> 1.5 從int->float
# 強制類型轉換:函數聲明強制轉換(不符合邏輯進行轉換的會報ValueErrer,比如int('abc'))
'''
int:轉換爲整型
float:轉換爲浮點
str:轉換爲字符串
list:轉換爲列表
tuple:轉換爲元組
set:轉換爲集合
dict:轉換爲字典
'''
# 轉換爲整數
# a = int(3.14)
# 參數1:需要轉換的數據
# base:數據的進制類型,默認爲十進制
# a = int('123', base=8)
# a = int('abc', base=16)
# 浮點
# a = float(250)
# 字符串
# a = str(123)
# 列表
# a = list('hello')
# a = list((1, 2, 3))
# a = list({1, 2, 3})
# 可以轉換不會報錯,但是隻保留了鍵
# a = list({'name': 'ergou', 'age': 18})
# 元組
# a = tuple([1, 2, 3])
# 集合
# a = set([1, 2, 3])
# 字典
lt = [('name', 'dahua'), ('age', 18)]
a = dict(lt)
print(a, type(a))