
來(lái)源:數(shù)據(jù)STUDIO
作者:云朵君
Python(英國(guó)發(fā)音:/?pa?θ?n/ 美國(guó)發(fā)音:/?pa?θɑ?n/)是一種廣泛使用的解釋型、高級(jí)和通用的編程語(yǔ)言。Python支持多種編程范型,包括函數(shù)式、指令式、結(jié)構(gòu)化、面向?qū)ο蠛头瓷涫骄幊?。它擁有?dòng)態(tài)類型系統(tǒng)和垃圾回收功能,能夠自動(dòng)管理內(nèi)存使用,并且其本身?yè)碛幸粋€(gè)巨大而廣泛的標(biāo)準(zhǔn)庫(kù)。
Python有著范圍廣泛的基本數(shù)據(jù)類型。Python的一個(gè)非常有用方面就是容器類型的概念,容器有二種基本形式:序列和映射。有次序的序列類型是列表(動(dòng)態(tài)數(shù)組)、元組和字符串。所有序列類型都是位置索引的(從0到長(zhǎng)度?1),并且除了字符串,都可以包含任意類型的對(duì)象,在同一個(gè)序列中包括多種類型的對(duì)象。字符串和元組是不可變的,使得它們成為字典的鍵的完美候選者。在另一方面,列表是可變的,元素可以被插入、刪除、修改、添加或就地排序。
本篇內(nèi)容總結(jié)包括從變量、輸入輸出到數(shù)據(jù)類型的基本介紹和常用方法。
變量賦值
>>> x=5 >>> x 5
變量計(jì)算
>>> x+2 # 兩個(gè)變量的和 7 >>> x-2 # 兩個(gè)變量的減法 3 >>> x*2 # 兩個(gè)變量相乘 10 >>> x**2 # 求變量的冪 25 >>> x%2 # 變量的余數(shù) 1 >>> x/float(2) # 變量的除法 2.5
類型和類型轉(zhuǎn)換
方法例說(shuō)明str()5', '3.45', 'True'字符串int()5, 3, 1整數(shù)float()5.0, 1.0浮點(diǎn)數(shù)bool()True, True, True布爾值
>>> help(str)
>>> print("Hello world!") >>> msg = "Hello world!" >>> print(msg)
Input
Input程序可以提示用戶輸入。所有輸入都存儲(chǔ)為字符串。
>>> 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ù)類型。我們可以使用引號(hào)('或")來(lái)創(chuàng)建字符串。創(chuàng)建字符串很簡(jiǎn)單,只要為變量分配一個(gè)值即可。
>>> my_string = 'thisStringIsAwesome' >>> my_string 'thisStringIsAwesome'
字符串運(yùn)算
>>> my_string * 2 # 乘法 'thisStringIsAwesomethisStringIsAwesome' >>> my_string + 'Innit' # 拼接 'thisStringIsAwesomeInnit' >>> 'm' in my_string # 是否存在 True # 索引從零開(kāi)始 >>> my_string[3] >>> my_string[4:9]
字符串方法
>>> my_string.upper() # 字符串大寫(xiě) >>> my_string.lower() # 字符串小寫(xiě) >>> my_string.count('w') # 計(jì)算字符串的元素 >>> my_string.replace('e', 'i') # 替換字符串元素 >>> my_string.strip() # 去空格
列表是最常用的Python數(shù)據(jù)類型,它可以作為一個(gè)方括號(hào)內(nèi)的逗號(hào)分隔值出現(xiàn)。
列表的數(shù)據(jù)項(xiàng)不需要具有相同的類型。
列表以特定的順序存儲(chǔ)一系列項(xiàng)目。列表允許將信息集存儲(chǔ)在一個(gè)地方,無(wú)論只有幾個(gè)項(xiàng)還是數(shù)百萬(wàn)項(xiàng)。列表是Python最強(qiáng)大的特性之一,新程序員可以很容易地訪問(wèn)它,它們將編程中的許多重要概念聯(lián)系在一起。
使用方括號(hào)定義列表,使用逗號(hào)分隔列表中的各個(gè)項(xiàng)目。使用列表的復(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']
更改列表值
一旦定義了列表,就可以更改列表中的單個(gè)元素。這可以通過(guò)引用要修改的項(xiàng)的索引來(lái)實(shí)現(xiàn)。
>>> users[0] = 'valerie' >>> users[-2] = 'ronald'
列表切片與索引
可以使用列表中的任何一組元素。根據(jù)列表中的元素的位置(稱為索引)來(lái)訪問(wèn)它們,列表的一部分稱為片。要切片列表,首先從您想要的第一個(gè)項(xiàng)目的索引開(kāi)始,然后添加冒號(hào)和您想要的最后一個(gè)項(xiàng)目之后的索引。去掉列表開(kāi)始處的第一個(gè)索引,去掉列表結(jié)束處的最后一個(gè)索引。
第一個(gè)元素的索引是0,第二個(gè)元素的索引是1,以此類推。
負(fù)索引指的是列表末尾的項(xiàng)。要獲得特定的元素,請(qǐng)先寫(xiě)出列表的名稱,然后在方括號(hào)中寫(xiě)出元素的索引。
# 子集 >>> my_list[1] # 選擇索引1的項(xiàng)
>>> my_list[-3] # 最后選擇第三項(xiàng) # 切片 >>> my_list[1:3] # 選擇索引1和索引2上的項(xiàng)
>>> my_list[1:] # 選擇索引0之后的項(xiàng)
>>> my_list[:3] # 選擇索引3之前的項(xiàng)
>>> my_list[:] # 復(fù)制my_list # 子集的子集 >>> my_list2[1][0]
>>> my_list2[1][:2]
列表運(yùn)算
>>> 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) # 獲取項(xiàng)目的索引 >>> my_list.count(a) # 計(jì)算一個(gè)項(xiàng)目 >>> my_list.append('!') # 每次追加一個(gè)項(xiàng) >>> my_list.remove('!') # 刪除一個(gè)項(xiàng)目 >>> del(my_list[0:1]) # 刪除一個(gè)項(xiàng)目 >>> my_list.reverse() # 反向列表 >>> my_list.extend('!') # 添加一個(gè)項(xiàng)目 >>> my_list.pop(-1) # 刪除一個(gè)項(xiàng)目 >>> my_list.insert(0,'!')# 插入一個(gè)項(xiàng)目 >>> my_list.sort() # 排序的列表
列表可以包含數(shù)百萬(wàn)個(gè)項(xiàng),因此Python提供了一種有效的方法來(lái)遍歷列表中的所有項(xiàng)。當(dāng)設(shè)置一個(gè)循環(huán)時(shí),Python每次從列表中取出一項(xiàng),并將其存儲(chǔ)在一個(gè)臨時(shí)變量中,為該臨時(shí)變量提供了一個(gè)名稱。這個(gè)名稱應(yīng)該是列表名稱的單數(shù)版本。
縮進(jìn)的代碼塊構(gòu)成循環(huán)體,在循環(huán)體中可以處理每個(gè)單獨(dú)的項(xiàng)。任何沒(méi)有縮進(jìn)的行在循環(huán)結(jié)束后運(yùn)行。
>>> 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ù)元素在列表中的位置或項(xiàng)的值刪除元素。如果你通過(guò)一個(gè)項(xiàng)的值來(lái)移除它,Python只移除第一個(gè)具有該值的項(xiàng)。
# 通過(guò)位置刪除 >>> del users[-1] # 通過(guò)值刪除 >>> users.remove('mia')
方法的作用是永久地改變列表的順序。sorted()函數(shù)返回列表的副本,保持原始列表不變。可以按字母順序或反字母順序?qū)α斜碇械捻?xiàng)目進(jìn)行排序。還可以顛倒列表的原始順序。
小寫(xiě)和大寫(xiě)字母可能會(huì)影響排序順序。
# 永久地對(duì)列表進(jìn)行排序 >>> users.sort() # 以反字母順序永久地對(duì)列表進(jìn)行排序 >>> users.sort(reverse=True) # 臨時(shí)排序 >>> 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ù)默認(rèn)從0開(kāi)始,停止傳遞給它的數(shù)字下面的一個(gè)數(shù)字。可以使用list()函數(shù)來(lái)有效地生成大量的數(shù)字列表。
>>> for number in range(1001):
... print(number)
>>> for number in range(1, 1001):
... print(number)
>>> numbers = list(range(1, 1000001))
簡(jiǎn)單統(tǒng)計(jì)
您可以在包含數(shù)字?jǐn)?shù)據(jù)的列表上運(yùn)行許多簡(jiǎn)單的統(tǒng)計(jì)數(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
元組與列表類似,但元組中的項(xiàng)不能被修改,即不可變數(shù)據(jù)類型。
>>> dimensions = (1920, 1080)
字典存儲(chǔ)在片段信息之間的建立聯(lián)系。字典中的每一個(gè)項(xiàng)都是一個(gè)鍵-值對(duì)。當(dāng)提供一個(gè)鍵時(shí),Python將返回與該鍵相關(guān)聯(lián)的值。可以循環(huán)遍歷所有鍵-值對(duì)、所有鍵或所有值。
使用花括號(hào)來(lái)定義字典。使用冒號(hào)連接鍵和值,并使用逗號(hào)分隔單個(gè)鍵-值對(duì)。
>>> alien = {'color': 'green', 'points': 5}
獲取字典值(查)
要獲取單個(gè)鍵關(guān)聯(lián)的值,需提供字典的名稱,然后將鍵放在一組方括號(hào)中。如果需要的鍵不在字典中,就會(huì)出現(xiàn)錯(cuò)誤。
還可以使用get()方法,如果鍵不存在,該方法將返回None,而不是錯(cuò)誤。如果鍵不在字典中,還可以指定要使用的默認(rèn)值。
>>> 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
添加一個(gè)新鍵值對(duì)(增)
可以在字典中存儲(chǔ)任意數(shù)量的鍵值對(duì),直到計(jì)算機(jī)內(nèi)存耗盡為止。要向現(xiàn)有字典添加新的鍵-值對(duì),請(qǐng)?jiān)诜嚼ㄌ?hào)中給出字典的名稱和新鍵,并將其設(shè)置為新值。
這還允許您從一個(gè)空字典開(kāi)始,并在它們變得相關(guān)時(shí)添加鍵-值對(duì)。
>>> alien_0 = {'color': 'green', 'points': 5} >>> alien_0['x'] = 0 >>> alien_0['y'] = 25 >>> alien_0['speed'] = 1.5 # 向空字典中添加新鍵值對(duì) >>> alien_0 = {} >>> alien_0['color'] = 'green' >>> alien_0['points'] = 5
修改字典值(改)
可以修改與字典中任何鍵相關(guān)聯(lián)的值。為此,給出字典的名稱并將鍵括在方括號(hào)中,然后為該鍵提供新值。
>>> alien_0 = {'color': 'green', 'points': 5} >>> print(alien_0)
>>> alien_0['color'] = 'yellow' >>> alien_0['points'] = 10 >>> print(alien_0)
刪除字典鍵值對(duì)(刪)
您可以從字典中刪除任何想要的鍵-值對(duì)。為此,請(qǐng)使用del關(guān)鍵字和字典名稱,后跟方括號(hào)中的鍵。這將刪除鍵及其關(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)遍歷所有鍵-值對(duì)、所有鍵或所有值。字典只跟蹤鍵和值之間的連接,它不跟蹤字典中條目的順序。如果希望按順序處理信息,可以對(duì)循環(huán)中的鍵進(jì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)
列表中嵌套字典
# 建立一個(gè)空列表 >>> users = [] # 創(chuàng)建一個(gè)字典,并將其嵌入到列表中 >>> new_user = {
... 'last': 'fermi',
... 'first': 'enrico',
... 'username': 'efermi',
... } >>> users.append(new_user) # 再創(chuàng)建另一個(gè)字典,并將其嵌入到列表中 >>> 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)嵌套列表
在字典中存儲(chǔ)列表,允許將多個(gè)值與同一個(gè)鍵關(guān)聯(lián)。
# 為每個(gè)人存儲(chǔ)多種語(yǔ)言。 >>> fav_languages = {
... 'jen': ['python', 'ruby'],
... 'sarah': ['c'],
... 'edward': ['ruby', 'go'],
... 'phil': ['python', 'haskell'],
... } # 顯示每個(gè)人的所有回答。 >>> for name, langs in fav_languages.items():
... print(name + ": ") >>> for lang in langs: ... print("- " + lang)
字典內(nèi)嵌套字典
可以將一個(gè)字典存儲(chǔ)在另一個(gè)字典中。在這種情況下,與鍵相關(guān)聯(lián)的每個(gè)值本身就是一個(gè)字典。
>>> 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
標(biāo)準(zhǔn)的Python字典不會(huì)跟蹤鍵和值的添加順序,它們只保留每個(gè)鍵及其值之間的關(guān)聯(lián)。使用OrderedDict可以保持鍵和值的添加順序。
>>> from collections import OrderedDict # 存儲(chǔ)每個(gè)人的語(yǔ)言。 # 跟蹤最先響應(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ù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無(wú)論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫(kù)管理中,“大表” 始終是性能優(yōu)化繞不開(kāi)的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫(kù)表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開(kāi)始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫(kù)表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫(kù))處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤(pán)手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開(kāi)發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤(pán)手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫(kù)表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問(wèn)題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問(wèn)題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問(wèn)題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過(guò)程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見(jiàn)頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場(chǎng)景中,聚類分析作為 “無(wú)監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10