
Python基本數據類型一般分為:數字、字符串、列表、元組、字典、集合這六種基本數據類型。
- 不可變(3 個):Number(數字)、String(字符串)、Tuple(元組);
- 可變(3 個):List(列表)、Dictionary(字典)、Set(集合)
數字
Python3 支持 int、float、bool、complex(Python 3只有一種整數類型 int,表示為長整型,沒有 python2 中的 Long)
a
數字的運算在‘基礎認識’部分有介紹,這里不在過多描述。
String-字符串
字符串通常是由單引號或者雙引號來標識的,字符串是由獨立的字符組成的,且可通過切片操作順序地訪問。
str1 = 'hello'
str2 = 'python'
字符串拼接
str1 + str2
切片、索引
str1[1]
str2[1:3]
大小寫轉換
str1.lower()
str2.upper()
判斷是以X開頭/結尾
str1.startswith('he')
str2.endswith('lo')
分割字符串
str3 = "I am a good boy!"
str3.split(" ") # 采用空格進行分割
['I', 'am', 'a', 'good', 'boy!']
str3.split(" ", 3) # 采用空格進行分割,并且只分割前3個
['I', 'am', 'a', 'good boy!']
計數
str3.count('o') # 3
查找字符串
str1.find('lo') # str.find(substr,start,end) 查找指定字符串,查到返回位置索引,找不到返回-1
str2.index('lo') # 與find一樣,但是查不到會報異常,ValueError:substring is not found
去除字符串中的空格和特殊字符
str1.strip([chars]) :去除字符串前后(左右側)的空格或特殊字符
str2.lstrip([chars]):去除字符串前面(左側)的空格或特殊字符
str3.rstrip([chars]):去除字符串后面(右側)的空格或特殊字符
替換
str1.replace('you','her') # 把you替換為her
連接字符串
s='_'
li=['L','O','V','E']
s.join(li) # 'L_O_V_E'
List-列表
列表是python中非常重要的數據對象,[]來表示和創建,里面元素可以是int型、string型,或者混合型,甚至是另一個列表。列表是長度可變的有序表,元素可重復。
創建列表
list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
訪問列表
list2[1:5]
列表對 + 和 * 的操作符與字符串相似。+ 號用于組合列表,* 號用于重復列表。
len
增添(append、insert、extend)
# append 一般在后面追加一個元素
language=['c','c#','java','python']
language.append('R') # 插入一個元素
# extend 一般增加一個列表
language.extend(['go','R']) # 插入一個列表
# insert指定位置插入
language.insert(1,'R')
language.insert(2,['go','sql'])
刪除(pop、remove、del)
# pop 列表尾部刪除元素、或者指定索引位置刪除元素,并返回刪除值
s1=language.pop()
s2=language.pop(1)
# del 指定索引位置刪除元素
del language[1]
# remove 刪除列表中特定元素
language.remove('java')
# clear方法清空列表元素
language.clear()# 注意:如果是從A列表刪除B列表的元素,可以借助in和remove循環刪除。
修改
# 修改,先找到元素的位置索引,然后再用賦值就可以了
language=['c','c#','java','python']
language[2]='R'
查詢
# 索引查看、循環輸出、切片查看
language[1]
language[1:3]
for l in language:print(l)# 包含 in ,not in,index, count
'c' in language
'c' not in language
language.index('python') # Return first index of value.or ValueError:'python' is not in list
language.count('c') # 統計出現次數,不存在返回0# min、max
min(list2)
max(list2)
排序(sort排序、reserve逆序)
l1=[2,3,9,5,1,7,0]
l1.sort(reverse=True)
l1.reverse()l2 = l1[::-1] # 逆序
列表生成式
# 生成一個列表,元素是1~10的平方
# 法1 :循環生成
list3=[]
for i in range(1,11):list3.append(i**2)# 法2 :列表生成式 [表達式 for i in 序列]
[i**2 for i in range(1,11)]
[i*j for i in range(1,100) for j in range(1,i) if i>=j]
[x**2 for x in range(1,11) if x%3==0]
[m+n for m in 'ABC' for n in 'abc']
過濾列表
# 方式1:filter函數
num_list=[1, 2, 3, 4, 5, 6, 7, 8]
def filter_above3(num):return num>=3
# filter()接受的第一個參數是函數對象,第二個參數是可迭代的對象
filtered=filter(filter_above3, num_list)
filtered_list=list(filtered)# 方式2:列表生成式
filtered_list=[num for num in num_list if num>=3]
整體修改列表
# 方式1:map函數
def square(num):return num**2
# map()函數使得我們可以將某個函數應用到可迭代對象內每一個元素之上
squares=map(square, num_list)
squares_list=list(squares)# 方式2:列表生成式
squares_list=[num**2 for num in num_list]
組合列表
# zip()函數接收多個列表作為參數傳入,進而得到每個位置上一一對應的元素組合
該篇文章主要講了數字、字符串以及列表的相關操作,下節將繼續記錄后面三種數據類型。