一篇文章帶你學(xué)習(xí)Python3的高級特性(1)
1.切片
# 切片:取list或tuple的部分元素
nameList = ["Willard","ChenJD","ChenBao","ChenXiaoBao","hackerLuo"]
print("nameList的內(nèi)容為:",nameList)
print("------------------------------------------------------------------------------")
# 傳統(tǒng)方法取nameList前三個元素
print("nameList前三個元素:",[nameList[0],nameList[1],nameList[2]])
print("------------------------------------------------------------------------------")
# 使用切片取前三個元素,注:切片也是左閉右開
print("使用切片操作取nameList前三個元素:",nameList[0:3])
print("使用切片操作取nameList第二個到第四個元素:",nameList[1:5])
print("------------------------------------------------------------------------------")
print("------------------------------------------------------------------------------")
# 切片的一些常用操作
numsList = list(range(30))
print("數(shù)字列表內(nèi)容為:\n",numsList)
print("------------------------------------------------------------------------------")
print("數(shù)字列表前10個數(shù)內(nèi)容:",numsList[0:10])
print("數(shù)字列表前10個數(shù)內(nèi)容:",numsList[:10])
print("\n")
print("數(shù)字列表后10個數(shù)內(nèi)容:",numsList[-10:])
print("數(shù)字列表前11-20個數(shù)內(nèi)容:",numsList[10:20])
print("數(shù)字列表前10個數(shù)每隔兩個取一個:",numsList[0:10:2])
print("數(shù)字列表前10個數(shù)每隔兩個取一個:",numsList[:10:2])
print("數(shù)字列表每隔3個數(shù)取一個:",numsList[::3])
print("數(shù)字列表內(nèi)容:\n",numsList[:])
# Tips:
# 1.tuple可以使用切片操作,操作的結(jié)果仍是tuple;
# (0,1,2,3,4,5)[:3] ===> (0,1,2)
# 2.字符串使用切片操作,一個字符就是一個元素
# "Welcome to FUXI Technology."[:3] ===> "Wel"
# 結(jié)果輸出:
nameList的內(nèi)容為: ['Willard', 'ChenJD', 'ChenBao', 'ChenXiaoBao', 'hackerLuo']
------------------------------------------------------------------------------
nameList前三個元素: ['Willard', 'ChenJD', 'ChenBao']
------------------------------------------------------------------------------
使用切片操作取nameList前三個元素: ['Willard', 'ChenJD', 'ChenBao']
使用切片操作取nameList第二個到第四個元素: ['ChenJD', 'ChenBao', 'ChenXiaoBao', 'hackerLuo']
------------------------------------------------------------------------------
------------------------------------------------------------------------------
數(shù)字列表內(nèi)容為:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
------------------------------------------------------------------------------
數(shù)字列表前10個數(shù)內(nèi)容: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
數(shù)字列表前10個數(shù)內(nèi)容: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
數(shù)字列表后10個數(shù)內(nèi)容: [20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
數(shù)字列表前11-20個數(shù)內(nèi)容: [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
數(shù)字列表前10個數(shù)每隔兩個取一個: [0, 2, 4, 6, 8]
數(shù)字列表前10個數(shù)每隔兩個取一個: [0, 2, 4, 6, 8]
數(shù)字列表每隔3個數(shù)取一個: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]
數(shù)字列表內(nèi)容:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
2.迭代
# 給定一個list或tuple,通過for循環(huán)來遍歷這個list或tuple,這種遍歷稱為迭代(iteration);# 迭代通過for...in來完成;# 實例1:迭代dictpersonInfoDict = {"name":"Willard","age":18,"job":"Engineer"}print("使用迭代讀取dict內(nèi)容!")print("personInfoDict的內(nèi)容:",personInfoDict)print("------------------------------------------------------------------------------")# 讀取personInfoDict的key值print("personInfoDict的key值:")for key in personInfoDict: print(key,end = " ")print("\n")print("personInfoDict的value值:")for value in personInfoDict.values(): print(value,end = " ") print("\n")print("personInfoDict的key-value值:")for item in personInfoDict.items(): print(item,end = " ")print("\n")print("------------------------------------------------------------------------------")print("------------------------------------------------------------------------------")# 實例2:迭代讀取字符串userNameStr = "WillardLuo"print("使用迭代讀取字符串內(nèi)容!")print("userNameStr的內(nèi)容:",userNameStr)print("------------------------------------------------------------------------------")print("userNameStr的每個元素為:")for word in userNameStr: print(word,end = " ")# 給定一個list或tuple,通過for循環(huán)來遍歷這個list或tuple,這種遍歷稱為迭代(iteration);
# 迭代通過for...in來完成;
# 實例1:迭代dict
personInfoDict = {"name":"Willard","age":18,"job":"Engineer"}
print("使用迭代讀取dict內(nèi)容!")
print("personInfoDict的內(nèi)容:",personInfoDict)
print("------------------------------------------------------------------------------")
# 讀取personInfoDict的key值
print("personInfoDict的key值:")
for key in personInfoDict:
print(key,end = " ")
print("\n")
print("personInfoDict的value值:")
for value in personInfoDict.values():
print(value,end = " ")
print("\n")
print("personInfoDict的key-value值:")
for item in personInfoDict.items():
print(item,end = " ")
print("\n")
print("------------------------------------------------------------------------------")
print("------------------------------------------------------------------------------")
# 實例2:迭代讀取字符串
userNameStr = "WillardLuo"
print("使用迭代讀取字符串內(nèi)容!")
print("userNameStr的內(nèi)容:",userNameStr)
print("------------------------------------------------------------------------------")
print("userNameStr的每個元素為:")
for word in userNameStr:
print(word,end = " ")
# 結(jié)果輸出:
使用迭代讀取dict內(nèi)容!
personInfoDict的內(nèi)容: {'name': 'Willard', 'age': 18, 'job': 'Engineer'}
------------------------------------------------------------------------------
personInfoDict的key值:
name age jobpersonInfoDict的value值:
Willard 18 EngineerpersonInfoDict的key-value值:
('name', 'Willard') ('age', 18) ('job', 'Engineer')------------------------------------------------------------------------------
------------------------------------------------------------------------------
使用迭代讀取字符串內(nèi)容!
userNameStr的內(nèi)容: WillardLuo
------------------------------------------------------------------------------
userNameStr的每個元素為:
W i l l a r d L u o
# Tips:
# 1.使用for...in循環(huán)需要作用于一個可迭代對象;
# 2.判斷一個對象是否是可迭代對象,可通過collections.abs模塊的Iterable類型判斷
from collections.abc import Iterable
nameStr = "WillardLuo"
nameList = ["Willard","ChenJD","ChenBao"]
numberTuple = (1,2,3,4,5)
personInfoDict = {"name":"Willard","age":18}
number = 100
print("判斷字符串是否是可迭代對象!")
print(isinstance(nameStr,Iterable))
print("判斷列表是否是可迭代對象!")
print(isinstance(nameList,Iterable))
print("判斷元組是否是可迭代對象!")
print(isinstance(numberTuple,Iterable))
print("判斷字典是否是可迭代對象!")
print(isinstance(personInfoDict,Iterable))
print("判斷數(shù)字是否是可迭代對象!")
print(isinstance(number,Iterable))
print("------------------------------------------------------------------------------")
print("------------------------------------------------------------------------------")
# 實現(xiàn)對list進行下標(biāo)循環(huán)
# 使用enumerate函數(shù)把一個list變成"索引-元素"對
nameList = ["Willard","ChenJD","ChenBao","ChenXiaoBao","hackerLuo"]
for index,value in enumerate(nameList):
print(index,value)
print("------------------------------------------------------------------------------")
willardInfo = {"name":"Willard","age":18,"job":"Engineer"}
# 循環(huán)中同時引用兩個變量,數(shù)據(jù)處理中常用
for key,value in willardInfo.items():
print(key,value)
# 結(jié)果輸出:
判斷字符串是否是可迭代對象!
True
判斷列表是否是可迭代對象!
True
判斷元組是否是可迭代對象!
True
判斷字典是否是可迭代對象!
True
判斷數(shù)字是否是可迭代對象!
False
------------------------------------------------------------------------------
------------------------------------------------------------------------------
0 Willard
1 ChenJD
2 ChenBao
3 ChenXiaoBao
4 hackerLuo
------------------------------------------------------------------------------
name Willard
age 18
job Engineer
3.列表生成式
# 列表生成式:List Comprehensions,用來創(chuàng)建list的生成式
# 實例1:生成[1×1,2×2,3×3,...,10×10]的列表
# 法一:循環(huán)
numsList = []
for num in range(1,11):
numsList.append(num * num)
print("numsList的內(nèi)容:",numsList)
print("---------------------------------------------------------")
# 法二:列表生成式
print("列表生成式生成上述列表!")
# 把要生成的元素放在前面,后面加循環(huán)
print([num * num for num in range(1,11)])
print("---------------------------------------------------------")
# 在循環(huán)后添加if判斷,篩選1-10中偶數(shù)的平方
print("列表生成式生成1-10偶數(shù)的平方的列表")
print([num * num for num in range(1,11) if num % 2 == 0])
print("---------------------------------------------------------")
# 雙重循環(huán)
print("列表生成式應(yīng)用于雙重循環(huán)")
print([m + n for m in "Willard" for n in "ChenJD"])
# 結(jié)果輸出:
numsList的內(nèi)容: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
---------------------------------------------------------
列表生成式生成上述列表!
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
---------------------------------------------------------
列表生成式生成1-10偶數(shù)的平方的列表
[4, 16, 36, 64, 100]
---------------------------------------------------------
列表生成式應(yīng)用于雙重循環(huán)
['WC', 'Wh', 'We', 'Wn', 'WJ', 'WD', 'iC', 'ih', 'ie', 'in', 'iJ', 'iD', 'lC', 'lh', 'le', 'ln', 'lJ', 'lD', 'lC', 'lh', 'le', 'ln', 'lJ', 'lD', 'aC', 'ah', 'ae', 'an', 'aJ', 'aD', 'rC', 'rh', 're', 'rn', 'rJ', 'rD', 'dC', 'dh', 'de', 'dn', 'dJ', 'dD']
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Python selenium模擬網(wǎng)頁點擊爬蟲交管12123違章數(shù)據(jù)
本次介紹怎么以模擬點擊方式進入交管12123爬取車輛違章數(shù)據(jù),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
使用Python的requests庫進行網(wǎng)頁數(shù)據(jù)抓取的詳細(xì)教程
網(wǎng)絡(luò)爬蟲是一種自動化程序,用于從互聯(lián)網(wǎng)上抓取數(shù)據(jù),無論是用于數(shù)據(jù)分析、市場研究、學(xué)術(shù)研究,還是搜索引擎的網(wǎng)頁索引,爬蟲技術(shù)都在現(xiàn)代互聯(lián)網(wǎng)應(yīng)用中發(fā)揮著重要作用,本文將通過 requests 庫 來講解如何進行基本的網(wǎng)頁數(shù)據(jù)抓取,需要的朋友可以參考下2025-03-03
一文帶你學(xué)會Python?Flask框架設(shè)置響應(yīng)頭
本篇博客我們將帶大家全面了解Python中Flask框架關(guān)于請求的相關(guān)設(shè)置的相關(guān)知識,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下2023-01-01

