list选取多个元素 python_【幼儿园级】0基础学python一本通(上)——AI未来系列1...
在未來面前,每個人都是學生
江海升月明,天涯共此時,關注江時!
引
子
本篇為AI未來系列第一篇。為什么要研究學習python?python是未來屠龍的屠龍寶刀,再輔助以我們的高中數學基礎(足夠用的屠龍術),小白們即可把握人工智能的未來。本系列初步階段主要攻克數據分析問題,中階攻克爬蟲問題,高階進入人工智能階段,順帶會穿插一些硬件知識。
想想比爾蓋茨的發家史,也有點小小激動喲。未來已來,just do it。時不我待,今天是2019年2月12日農歷初八,趕緊開始第一篇——幼兒園級,老嫗也會,0基礎學python一本通。
正
文
為什么Python這么受歡迎?
簡單的來說,有下面五點原因:
1、Python可以在多種計算機操作系統中運行(Unix,Windows,MacOS,Ubuntu等等),python在這些語言中是最簡單易用的。
2、Python能夠實現交互式命令輸出。對于非專業程序員而言,都希望邊編寫程序,邊查看結果。
3、Python是開源免費的,有很多強大易用的標準庫。對于非專業的程序員而言,使用這些庫可以免去自己編寫的煩惱。
4、Python是一種解析性的、面向對象的編程語言。面向對象編程和一般的編程不太一樣,有其自身的優勢。
5、Python是可以連接多種語言的膠水語言。
Python與其他數據分析語言對比
一、Python基礎語法
初次使用Python,首先要明確三點:
Python的標識符(例如變量名、函數名等),可用字母、數字和下劃線構成,不能以數字開頭,且區分大小寫。
Python對于縮進敏感。在Python中,是使用縮進來寫代碼塊。
Python的注釋語句一般用#開頭。多行注釋可以有用三引號。
這里使用了多行注釋
使用三引號將注釋內容包含起來
在代碼上中只能使用#開頭的注釋語句
'''
a?=?1???????#小寫字母定義變量
A?=?2???????#大小字母定義變量
a1?=?3??????#小寫字母+數字?一起來定義變量
a_b_c?=?4???#小寫字母+下劃線?來定義變量
_n_?=?5?????#下劃線+小寫字母?來定義變量
print(a,A,a1,a_b_c,_n_)```
1 2 3 4 5
'''使用縮進來說明代碼塊
下面編寫了一個循環
注意到循環體N=N+n相對于之前的代碼縮進了
因為它是整個循環的循環體,需要通過縮進標識出來
'''
N?=?0
for?n?in?[1,2,3,4,5]:
????N?=?N?+?n
print(N)
15
'''刪除某個對象
'''
x?=?1
del?x?#刪除對象x
x
二、Python基礎數據類型
Python中基礎的數據類型只有兩類:字符串string和數字。在數字類型下,可細分為4個類型整型int、長整型long、浮點數float和復數complex。常用的數字類型為整型int和浮點數float。
2.1 字符串string
關于字符串,有下面三點需要注意。其中第三點尤為關鍵,且不光是針對字符串,對于python中所有的索引都是適用的。
1、Python用單引號'',雙引號"",三引號''''''來標識字符串,三引號用于多行文本
2、字符串也是一個序列,可以截斷和切片
3、注意python中的索引:從左到右索引默認從0開始,最大范圍為字符串長度-1。從右向左索引默認從-1開始,最大范圍是字符串開頭
long_string?=?'''
I?love?Wind
and?Wind?welcomes?everyone
We?are?a?family
'''
#?上面定義兩個字符串?其中?long_string為一個多行的字符串?所以用''''''包含起來
print(string)
print(long_string)
I?love?Wind!
I love Wind!
I love Wind
and Wind welcomes everyone
We are a family
print('字符串的倒數第一個元素(支持負索引):???????',string[-1])
print('原字符串(注意空格也占據一個字符):?????????',string)
print('字符串索引2至5(注意索引的話左包含右不包含):',string[2:6])
print('字符串索引2至最后:???????????????????????',string[2:])
print('字符串索引-2至最后:??????????????????????',string[-2:])
字符串的第一個元素(注意索引為0): ? ? ? ? ? I
字符串的倒數第一個元素(支持負索引): ? ? ? ?!
原字符串(注意空格也占據一個字符): ? ? ? ? ?I love Wind!
字符串索引2至5(注意索引的話左包含右不包含): love
字符串索引2至最后: ? ? ? ? ? ? ? ? ? ? ? ?love Wind!
字符串索引-2至最后: ? ? ? ? ? ? ? ? ? ? ? d!
關于字符串的運算
'''
print('字符串重復2遍:',string?*?2)
print('字符串的拼接:',string?+?'?and?Wind?welcomes?everyone!')
字符串重復2遍: I love Wind!I love Wind!
字符串的拼接: I love Wind! and Wind welcomes everyone!
\n可用來字符串的換行
'''
print('我想換行\n換行成功')
我想換行
換行成功
\t可用來輸入制表符
'''
print('我想插入一個制表符\t插入成功')
我想插入一個制表符 ? ?插入成功
2.2 數字number
數字可以細分為四個類型,一般常用的是整形int和浮點數float。
x1?=?10?;?x2?=?2.23???#用分號;隔開?可以在一行中寫多個語句type(x1),type(x2)
(int, float)
三、Python數據集合類型
在基礎數據類型的基礎上,Python有6中數據集合的類型:
1、列表list,最常用的數據類型,以[]為標識
2、元組tuple,和list很相似,但是不能二次賦值,用()標識
3、集合set,和list類似,但是set中沒有重復的元素,常用于集合間的運算,用{}標識
4、字典dict,無序的對象集合,字典中的元素通過關鍵詞key來調用,同樣以{}來標識
5、數組array,科學計算和代數運算常用的數據類型,在后續numpy庫系列詳細說明
6、數據框dataframe,數據分析處理常用的數據類型,在后續pandas庫系列詳細說明
3.1 列表list
print('這里定義了一個列表list——x1,注意到列表x1中的元素是可以不同的,這里由兩個數字1和2,一個字符串James,一個列表[1,2,3]這四個元素構成了x1這個列表list。')x1?=?[1,2,?'James',?[1,2,3]]
print(x1)
這里定義了一個列表list——x1,注意到列表x1中的元素是可以不同的,這里由兩個數字1和2,一個字符串James,一個列表[1,2,3]這四個元素構成了x1這個列表list。
[1, 2, 'James', [1, 2, 3]]
print('調用列表x1的第一個元素(注意第一個元素的索引為0):',x1[0])
print('調用列表x1的最后一個元素(注意最后一個元素的索引為-1):',x1[-1])
print('調用列表x1的前2個元素(注意索引的時候右不包含):',x1[:2])
如何來調用列表x1中的某個或者某幾個元素呢??
調用列表x1的第一個元素(注意第一個元素的索引為0): 1
調用列表x1的最后一個元素(注意最后一個元素的索引為-1): [1, 2, 3]
調用列表x1的前2個元素(注意索引的時候右不包含): [1, 2]這里要說明的是,python下序列(例如數組,列表,元組等)的索引,是從0開始而非從1開始。從左到右索引默認從0開始,從右到左索引默認從-1開始。
一般索引的方式為 序列[索引開始:索引結尾],且要注意python索引是右不包含,即索引結尾對應的元素是不包含在結果中的。
x2?=?['a','b','c']
print('將兩個列表x1和x2拼接起來',x1+x2)
x1.append('新增元素')
print('在列表x1中添加一個元素',x1)
print('將列表x2重復兩遍',x2*2)
關于列表的運算
將兩個列表x1和x2拼接起來 [1, 2, 'James', [1, 2, 3], 'a', 'b', 'c']
在列表x1中添加一個元素 [1, 2, 'James', [1, 2, 3], '新增元素']
將列表x2重復兩遍 ['a', 'b', 'c', 'a', 'b', 'c']
append是在列表的末尾添加元素,那如果要在列表中間添加元素怎么做呢?
'''
print('原列表:',x1)
x1.insert(2,1000)
print('在索引2位置添加了新的元素:',x1)
原列表: [1, 2, 'James', [1, 2, 3], '新增元素']
在索引2位置添加了新的元素: [1, 2, 1000, 'James', [1, 2, 3], '新增元素']
根據索引來刪除列表中的元素
'''
print('原列表:',x1)
x1.pop(3)
print('刪除索引3上的元素后:',x1)
原列表: [1, 2, 1000, 'James', [1, 2, 3], '新增元素']
刪除索引3上的元素后: [1, 2, 1000, [1, 2, 3], '新增元素']
在列表中添加多個元素
'''
print('原列表:',x1)
x1.extend([0,1,2,3,4,5,6])
print('添加多個元素后:',x1)
原列表: [1, 2, 1000, [1, 2, 3], '新增元素']
添加多個元素后: [1, 2, 1000, [1, 2, 3], '新增元素', 0, 1, 2, 3, 4, 5, 6]
根據元素值來刪除元素
'''
print('原列表:',x1)
x1.remove('新增元素')
print('刪除"新增元素"元素后:',x1)
原列表: [1, 2, 1000, [1, 2, 3], '新增元素', 0, 1, 2, 3, 4, 5, 6]
刪除"新增元素"元素后: [1, 2, 1000, [1, 2, 3], 0, 1, 2, 3, 4, 5, 6]
print('查看元素1在列表中出現的次數:',x2.count(1))
查看元素1在列表中出現的次數: 4
print('關于列表的排序\n')x3?=?[-10,-2,1,-100,333,1000]
print('原列表:',x3)
x3.sort()
print('按從小到大排序:',x3)
x3.sort(reverse=True)
print('按從大到小排序:',x3)
關于列表的排序
原列表: [-10, -2, 1, -100, 333, 1000]
按從小到大排序: [-100, -10, -2, 1, 333, 1000]
按從大到小排序: [1000, 333, 1, -2, -10, -100]
3.2 元組tuple
x3?=?(66.6,'萬得資訊',1.0000)print('這是一個元組tuple:',x3)
x3[0]?=?1
這是一個元組tuple: (66.6, '萬得資訊', 1.0)
print('關于元組tuple的相關計算:')print(x3?+?('a','b'))
print(x3?*?2)
#從結果可以發現,元組的一些計算和列表list是類似的
關于元組tuple的相關計算:
(66.6, '萬得資訊', 1.0, 'a', 'b')
(66.6, '萬得資訊', 1.0, 66.6, '萬得資訊', 1.0)
可以發現,當想對一個元組tuple的第一個元素(索引0)重新賦值時,則會報錯。說明元組一旦定義好了就不能二次賦值了。但是要注意如下這種情況
x4[2][1]?=?1000
x4
('jack', 1000, [1, 1000, 3])
在x4這個元組中,索引2對應的元素是一個列表[1,2,3],那么這個列表中的元素做一個更改的話是可以的
3.3 集合set
x0?=?[1,1,2,2,3,3,4,4,5,5]print('含有重復元素的一個列表x0:',x0)
x0_set?=?set(x0)
print('將列表x0轉化一個集合:',x0_set)
print('可以發現集合x0_set中沒有重復的元素')
含有重復元素的一個列表x0: [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
將列表x0轉化一個集合: {1, 2, 3, 4, 5}
可以發現集合x0_set中沒有重復的元素
set1?=?{1,2,3,4,5}
set2?=?{2,3,4}
print('集合set1:',set1,'\n','集合set2:',set2)
print('集合set1和集合set2的差集:',set1-set2)
print('集合set1和集合set2的交集:',set1.intersection(set2))
關于集合set的計算
集合set1: {1, 2, 3, 4, 5}
集合set2: {2, 3, 4}
集合set1和集合set2的差集: {1, 5}
集合set1和集合set2的交集: {2, 3, 4}
print('集合set1和集合set2的交集:',set1&set2)
print('集合set1和集合set2的并集:',set1|set2)
集合set1: {1, 2, 3, 4, 5}
集合set2: {2, 3, 4}
集合set1和集合set2的交集: {2, 3, 4}
集合set1和集合set2的并集: {1, 2, 3, 4, 5}
3.4 字典dict
#?字典定義方式一dict1?=?{}??#先創建一個空字典
dict1['姓名']?=?'萬礦'
dict1['年齡']?=??0.5
dict1['能力值']?=?1000
print(dict1)
#?字典定義方式二
dict2?=?{'姓名':'Kobe?Bryant','身高':198,'冠軍數':5}
print(dict2)
{'能力值': 1000, '年齡': 0.5, '姓名': '萬礦'}
{'身高': 198, '冠軍數': 5, '姓名': 'Kobe Bryant'}
dict3?=?dict.fromkeys(['A','B','C'],1000)
print(dict3)
#?字典定義方式四
dict4?=?dict(zip(['A','B','C'],[1,10,100]))
print(dict4)
{'B': 1000, 'A': 1000, 'C': 1000}
{'B': 10, 'A': 1, 'C': 100}
print('查看字典dict2的關鍵詞:',dict2.keys())
print('查看字典dict2的值:',dict2.values())
字典由關鍵詞key和值value兩個部分構成
查看字典dict2的關鍵詞: dict_keys(['身高', '冠軍數', '姓名'])
查看字典dict2的值: dict_values([198, 5, 'Kobe Bryant'])
刪除字典中的關鍵詞
'''
dict1.pop('姓名')
print('刪除關鍵詞“姓名”:',dict1)
刪除關鍵詞“姓名”: {'能力值': 1000, '年齡': 0.5}
dict1.clear()print('清除字典中的所有元素:',dict1)
清除字典中的所有元素: {}
四、Python基本運算符
五、條件和循環
5.1條件語句
條件語句基本框架如下:if 判斷語句1:執行語句塊1elif 判斷語句2:執行語句塊2else:執行語句塊3
a?=?102
if?a%2?==?0?:?????#這里使用了取余函數%
3
????print(a,'是偶數')
4
else:
5
????print(a,'是奇數')
10 是偶數
b?=?'張三'2
if?b?in?['張一','張二','張三','張四']:??#這里使用了in來判斷
3
????print(b,'是張家人')
4
else:
5
????print(b,'不是張家人')
張三 是張家人
c?=?202
if?c?3
????print(c,'小于20')
4
elif?c?>?80:
5
????print(c,'大于80')
6
else:
7
????print(c,'在20~80之間')
20 在20~80之間
5.2 循環語句
5.2.1 for循環
1sum?=?0??#實現0+1+2+。。+9
2
for?j?in?range(10):
3
????sum?=?sum?+?j
4
print(sum)
45
1sum?=?0
2
for?j?in?range(10):
3
????sum?+=?j???#這句和?sum?=?sum?+?j一個效果
4
print(sum)
45
5.2.2 while循環
j?=?12
while?j?!=?6:
3
????j?=?j?+?1
4
print('循環結果為:',j)
循環結果為: 6
5.2.3 循環控制語句——break
break語句的含義是終止當前循環,且跳出整個循環
for?j?in?range(10):2
????if?j?==?6:
3
????????break
4
????print('當前j的值為:',j)
當前j的值為: 0
當前j的值為: 1
當前j的值為: 2
當前j的值為: 3
當前j的值為: 4
當前j的值為: 5
5.2.4 循環控制語句——continue
continue語句的含義是終止當次循環,跳出該次循環,直接執行下一次循環
for?j?in?range(10):2
????if?j?==?6:
3
????????continue
4
????print('當前j的值為:',j)
當前j的值為: 0
當前j的值為: 1
當前j的值為: 2
當前j的值為: 3
當前j的值為: 4
當前j的值為: 5
當前j的值為: 7
當前j的值為: 8
當前j的值為: 9
5.2.5 pass語句
當執行到pass語句時,其含義就是不執行任何操作
for?j?in?range(10):2
????if?j?==?6:
3
????????pass
4
????else:
5
????????print('當前j的值為:',j)
當前j的值為: 0
當前j的值為: 1
當前j的值為: 2
當前j的值為: 3
當前j的值為: 4
當前j的值為: 5
當前j的值為: 7
當前j的值為: 8
當前j的值為: 9
5.2.6 循環、條件嵌套
例如我們要尋找2-100中的所有素數,本身需要一個循環。而判斷某一個數是否為素數也需要一個循環,所以這里嵌套了兩個循環。循環中還有一些條件語句。
#尋找2-100中的所有素數2
num?=?[]??#這里創建一個空列表是為了存儲結果
3
for?i?in?range(2,100):
4
????j?=?2
5
????while?j?<=?i/j?:?
6
????????if?i%j?==?0:?#%指計算余數
7
????????????break
8
????????j?=?j?+?1
9
????if?j?>?i/j:
10
????????num.append(i)
11
print(num)
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
函數,模塊,異常處理,讀取文件等未完待續。
來源:我的印象筆記整理
ABO
Me
JiangShi【ID:siteacher】
?AI CREATE FURTURE
VALUE LAST LONG
總結
以上是生活随笔為你收集整理的list选取多个元素 python_【幼儿园级】0基础学python一本通(上)——AI未来系列1...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php写入文本乱码,如何解决PHP用fw
- 下一篇: websocket python爬虫_p