
來源:數(shù)據(jù)STUDIO
作者:云朵君
Python(英國發(fā)音:/?pa?θ?n/ 美國發(fā)音:/?pa?θɑ?n/)是一種廣泛使用的解釋型、高級和通用的編程語言。Python支持多種編程范型,包括函數(shù)式、指令式、結(jié)構(gòu)化、面向?qū)ο蠛头瓷涫骄幊?。它擁有動態(tài)類型系統(tǒng)和垃圾回收功能,能夠自動管理內(nèi)存使用,并且其本身擁有一個巨大而廣泛的標準庫。
Python有著范圍廣泛的基本數(shù)據(jù)類型。Python的一個非常有用方面就是容器類型的概念,容器有二種基本形式:序列和映射。有次序的序列類型是列表(動態(tài)數(shù)組)、元組和字符串。所有序列類型都是位置索引的(從0到長度?1),并且除了字符串,都可以包含任意類型的對象,在同一個序列中包括多種類型的對象。字符串和元組是不可變的,使得它們成為字典的鍵的完美候選者。在另一方面,列表是可變的,元素可以被插入、刪除、修改、添加或就地排序。
本篇內(nèi)容總結(jié)包括從變量、輸入輸出到數(shù)據(jù)類型的基本介紹和常用方法。
變量賦值
>>> x=5 >>> x 5
變量計算
>>> x+2 # 兩個變量的和 7 >>> x-2 # 兩個變量的減法 3 >>> x*2 # 兩個變量相乘 10 >>> x**2 # 求變量的冪 25 >>> x%2 # 變量的余數(shù) 1 >>> x/float(2) # 變量的除法 2.5
類型和類型轉(zhuǎn)換
方法例說明str()5', '3.45', 'True'字符串int()5, 3, 1整數(shù)float()5.0, 1.0浮點數(shù)bool()True, True, True布爾值
>>> help(str)
>>> print("Hello world!") >>> msg = "Hello world!" >>> print(msg)
Input
Input程序可以提示用戶輸入。所有輸入都存儲為字符串。
>>> name = input("What's your name? ") >>> print("Hello, " + name + "!")
>>> age = input("How old are you? ") >>> age = int(age) >>> pi = input("What's the value of pi? ") >>> pi = float(pi)
字符串是 Python 中最常用的數(shù)據(jù)類型。我們可以使用引號('或")來創(chuàng)建字符串。創(chuàng)建字符串很簡單,只要為變量分配一個值即可。
>>> my_string = 'thisStringIsAwesome' >>> my_string 'thisStringIsAwesome'
字符串運算
>>> my_string * 2 # 乘法 'thisStringIsAwesomethisStringIsAwesome' >>> my_string + 'Innit' # 拼接 'thisStringIsAwesomeInnit' >>> 'm' in my_string # 是否存在 True # 索引從零開始 >>> my_string[3] >>> my_string[4:9]
字符串方法
>>> my_string.upper() # 字符串大寫 >>> my_string.lower() # 字符串小寫 >>> my_string.count('w') # 計算字符串的元素 >>> my_string.replace('e', 'i') # 替換字符串元素 >>> my_string.strip() # 去空格
列表是最常用的Python數(shù)據(jù)類型,它可以作為一個方括號內(nèi)的逗號分隔值出現(xiàn)。
列表的數(shù)據(jù)項不需要具有相同的類型。
列表以特定的順序存儲一系列項目。列表允許將信息集存儲在一個地方,無論只有幾個項還是數(shù)百萬項。列表是Python最強大的特性之一,新程序員可以很容易地訪問它,它們將編程中的許多重要概念聯(lián)系在一起。
使用方括號定義列表,使用逗號分隔列表中的各個項目。使用列表的復(fù)數(shù)名稱,使您的代碼更容易閱讀。
>>> a = 'is' >>> b = 'nice' >>> my_list = ['my', 'list', a, b] >>> my_list2 = [[4,5,6,7], [3,4,5,6]] >>> users = ['val', 'bob', 'mia', 'ron', 'ned']
更改列表值
一旦定義了列表,就可以更改列表中的單個元素。這可以通過引用要修改的項的索引來實現(xiàn)。
>>> users[0] = 'valerie' >>> users[-2] = 'ronald'
列表切片與索引
可以使用列表中的任何一組元素。根據(jù)列表中的元素的位置(稱為索引)來訪問它們,列表的一部分稱為片。要切片列表,首先從您想要的第一個項目的索引開始,然后添加冒號和您想要的最后一個項目之后的索引。去掉列表開始處的第一個索引,去掉列表結(jié)束處的最后一個索引。
負索引指的是列表末尾的項。要獲得特定的元素,請先寫出列表的名稱,然后在方括號中寫出元素的索引。
# 子集 >>> my_list[1] # 選擇索引1的項
>>> my_list[-3] # 最后選擇第三項 # 切片 >>> my_list[1:3] # 選擇索引1和索引2上的項
>>> my_list[1:] # 選擇索引0之后的項
>>> my_list[:3] # 選擇索引3之前的項
>>> my_list[:] # 復(fù)制my_list # 子集的子集 >>> my_list2[1][0]
>>> my_list2[1][:2]
列表運算
>>> my_list + my_list
['my', 'list', 'is', 'nice', 'my', 'list', 'is', 'nice'] >>> my_list * 2 ['my', 'list', 'is', 'nice', 'my', 'list', 'is', 'nice'] >>> my_list2 > 4 True
列表方法
>>> my_list.index(a) # 獲取項目的索引 >>> my_list.count(a) # 計算一個項目 >>> my_list.append('!') # 每次追加一個項 >>> my_list.remove('!') # 刪除一個項目 >>> del(my_list[0:1]) # 刪除一個項目 >>> my_list.reverse() # 反向列表 >>> my_list.extend('!') # 添加一個項目 >>> my_list.pop(-1) # 刪除一個項目 >>> my_list.insert(0,'!')# 插入一個項目 >>> my_list.sort() # 排序的列表
列表可以包含數(shù)百萬個項,因此Python提供了一種有效的方法來遍歷列表中的所有項。當(dāng)設(shè)置一個循環(huán)時,Python每次從列表中取出一項,并將其存儲在一個臨時變量中,為該臨時變量提供了一個名稱。這個名稱應(yīng)該是列表名稱的單數(shù)版本。
縮進的代碼塊構(gòu)成循環(huán)體,在循環(huán)體中可以處理每個單獨的項。任何沒有縮進的行在循環(huán)結(jié)束后運行。
>>> for bike in bikes: ... print(bike)
可以將元素添加到列表的末尾。
>>> bikes = [] >>> bikes.append('trek') >>> bikes.append('redline') >>> bikes.append('giant')
可以將它們插入到列表中的任何位置。
>>> users.insert(0, 'joe') >>> users.insert(3, 'bea')
可以根據(jù)元素在列表中的位置或項的值刪除元素。如果你通過一個項的值來移除它,Python只移除第一個具有該值的項。
# 通過位置刪除 >>> del users[-1] # 通過值刪除 >>> users.remove('mia')
方法的作用是永久地改變列表的順序。sorted()函數(shù)返回列表的副本,保持原始列表不變??梢园醋帜疙樞蚧蚍醋帜疙樞?qū)α斜碇械捻椖窟M行排序。還可以顛倒列表的原始順序。
小寫和大寫字母可能會影響排序順序。
# 永久地對列表進行排序 >>> users.sort() # 以反字母順序永久地對列表進行排序 >>> users.sort(reverse=True) # 臨時排序 >>> print(sorted(users)) >>> print(sorted(users, reverse=True)) # 反向排序 >>> users.reverse()
>>> squares = [x**2 for x in range(1, 11)]
range()函數(shù)
可以使用range()函數(shù)有效地處理一組數(shù)字。range()函數(shù)默認從0開始,停止傳遞給它的數(shù)字下面的一個數(shù)字??梢允褂?span style="color:#CD853F;">list()函數(shù)來有效地生成大量的數(shù)字列表。
>>> for number in range(1001):
... print(number)
>>> for number in range(1, 1001):
... print(number)
>>> numbers = list(range(1, 1000001))
簡單統(tǒng)計
您可以在包含數(shù)字數(shù)據(jù)的列表上運行許多簡單的統(tǒng)計數(shù)據(jù)。
>>> ages = [93, 99, 66, 17, 85, 1, 35, 82, 2, 77] >>> youngest = min(ages)
>>> ages = [93, 99, 66, 17, 85, 1, 35, 82, 2, 77] >>> oldest = max(ages)
>>> ages = [93, 99, 66, 17, 85, 1, 35, 82, 2, 77] >>> total_years = sum(ages) >>> total_years 557
元組與列表類似,但元組中的項不能被修改,即不可變數(shù)據(jù)類型。
>>> dimensions = (1920, 1080)
字典存儲在片段信息之間的建立聯(lián)系。字典中的每一個項都是一個鍵-值對。當(dāng)提供一個鍵時,Python將返回與該鍵相關(guān)聯(lián)的值??梢匝h(huán)遍歷所有鍵-值對、所有鍵或所有值。
使用花括號來定義字典。使用冒號連接鍵和值,并使用逗號分隔單個鍵-值對。
>>> alien = {'color': 'green', 'points': 5}
獲取字典值(查)
要獲取單個鍵關(guān)聯(lián)的值,需提供字典的名稱,然后將鍵放在一組方括號中。如果需要的鍵不在字典中,就會出現(xiàn)錯誤。
還可以使用get()方法,如果鍵不存在,該方法將返回None,而不是錯誤。如果鍵不在字典中,還可以指定要使用的默認值。
>>> print("The alien's color is " + alien['color']) "The alien's color is green" >>> alien_0 = {'color': 'green', 'points': 5} >>> alien_color = alien_0.get('color') >>> alien_points = alien_0.get('points', 0) >>> print(alien_color) 'green' >>> print(alien_points)
None
添加一個新鍵值對(增)
可以在字典中存儲任意數(shù)量的鍵值對,直到計算機內(nèi)存耗盡為止。要向現(xiàn)有字典添加新的鍵-值對,請在方括號中給出字典的名稱和新鍵,并將其設(shè)置為新值。
這還允許您從一個空字典開始,并在它們變得相關(guān)時添加鍵-值對。
>>> alien_0 = {'color': 'green', 'points': 5} >>> alien_0['x'] = 0 >>> alien_0['y'] = 25 >>> alien_0['speed'] = 1.5 # 向空字典中添加新鍵值對 >>> alien_0 = {} >>> alien_0['color'] = 'green' >>> alien_0['points'] = 5
修改字典值(改)
可以修改與字典中任何鍵相關(guān)聯(lián)的值。為此,給出字典的名稱并將鍵括在方括號中,然后為該鍵提供新值。
>>> alien_0 = {'color': 'green', 'points': 5} >>> print(alien_0)
>>> alien_0['color'] = 'yellow' >>> alien_0['points'] = 10 >>> print(alien_0)
刪除字典鍵值對(刪)
您可以從字典中刪除任何想要的鍵-值對。為此,請使用del關(guān)鍵字和字典名稱,后跟方括號中的鍵。這將刪除鍵及其關(guān)聯(lián)值。
>>> alien_0 = {'color': 'green', 'points': 5} >>> print(alien_0) >>> del alien_0['points'] >>> print(alien_0)
循環(huán)遍歷字典
可以用三種方式循環(huán)遍歷字典:可以循環(huán)遍歷所有鍵-值對、所有鍵或所有值。字典只跟蹤鍵和值之間的連接,它不跟蹤字典中條目的順序。如果希望按順序處理信息,可以對循環(huán)中的鍵進行排序。
>>> fav_numbers = {'eric': 17, 'ever': 4} >>> for name, number in fav_numbers.items():
... print(name + ' loves ' + str(number))
>>> av_numbers = {'eric': 17, 'ever': 4} >>> for name in fav_numbers.keys():
... print(name + ' loves a number')
>>> av_numbers = {'eric': 17, 'ever': 4} >>> for number in fav_numbers.values():
... print(str(number) + ' is a favorite')
>>> av_numbers = {'eric': 17, 'ever': 4} >>> for name in sorted(fav_languages.keys()):
... print(name + ": " + language)
列表中嵌套字典
# 建立一個空列表 >>> users = [] # 創(chuàng)建一個字典,并將其嵌入到列表中 >>> new_user = {
... 'last': 'fermi',
... 'first': 'enrico',
... 'username': 'efermi',
... } >>> users.append(new_user) # 再創(chuàng)建另一個字典,并將其嵌入到列表中 >>> new_user = {
... 'last': 'curie',
... 'first': 'marie',
... 'username': 'mcurie',
... } >>> users.append(new_user) # 打印出列表中所有的信息 >>> for user_dict in users: ... for k, v in user_dict.items():
... print(k + ": " + v)
... print("n")
>>> users = [
... {
... 'last': 'fermi',
... 'first': 'enrico',
... 'username': 'efermi',
... },
... {
... 'last': 'curie',
... 'first': 'marie',
... 'username': 'mcurie',
... },
... ] # 打印所有users的信息 >>> for user_dict in users: ... for k, v in user_dict.items():
... print(k + ": " + v)
... print("n")
字典內(nèi)嵌套列表
在字典中存儲列表,允許將多個值與同一個鍵關(guān)聯(lián)。
# 為每個人存儲多種語言。 >>> fav_languages = {
... 'jen': ['python', 'ruby'],
... 'sarah': ['c'],
... 'edward': ['ruby', 'go'],
... 'phil': ['python', 'haskell'],
... } # 顯示每個人的所有回答。 >>> for name, langs in fav_languages.items():
... print(name + ": ") >>> for lang in langs: ... print("- " + lang)
字典內(nèi)嵌套字典
可以將一個字典存儲在另一個字典中。在這種情況下,與鍵相關(guān)聯(lián)的每個值本身就是一個字典。
>>> users = {
... 'aeinstein': {
... 'first': 'albert',
... 'last': 'einstein',
... 'location': 'princeton',
... },
... 'mcurie': {
... 'first': 'marie',
... 'last': 'curie',
... 'location': 'paris',
... },
... } >>> for username, user_dict in users.items():
... print("nUsername: " + username)
... full_name = user_dict['first'] + " " ... full_name += user_dict['last']
... location = user_dict['location']
... print("tFull name: " + full_name.title())
... print("tLocation: " + location.title()) Username: aeinstein
Full name: Albert Einstein
Location: Princeton Username: mcurie
Full name: Marie Curie
Location: Paris
順序字典 OrderedDict
標準的Python字典不會跟蹤鍵和值的添加順序,它們只保留每個鍵及其值之間的關(guān)聯(lián)。使用OrderedDict可以保持鍵和值的添加順序。
>>> from collections import OrderedDict # 存儲每個人的語言。 # 跟蹤最先響應(yīng)的人。 >>> fav_languages = OrderedDict() >>> fav_languages['jen'] = ['python', 'ruby'] >>> fav_languages['sarah'] = ['c'] >>> fav_languages['edward'] = ['ruby', 'go'] >>> fav_languages['phil'] = ['python', 'haskell'] # 按照輸入的順序顯示結(jié)果 >>> for name, langs in fav_languages.items():
>>> print(name + ":") >>> for lang in langs: >>> print("- " + lang) jen: - python
- ruby sarah: - c edward: - ruby
- go phil: - python
- haskell
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03