python中列表和元組的用法-創(chuàng)新互聯(lián)

概念

成都網(wǎng)站制作、做網(wǎng)站的開發(fā),更需要了解用戶,從用戶角度來建設(shè)網(wǎng)站,獲得較好的用戶體驗(yàn)。成都創(chuàng)新互聯(lián)公司多年互聯(lián)網(wǎng)經(jīng)驗(yàn),見的多,溝通容易、能幫助客戶提出的運(yùn)營建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷的概念。選擇成都創(chuàng)新互聯(lián)公司,不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來訪用戶感受到浩方產(chǎn)品的價(jià)值服務(wù)。

列表

列表是Python中最基本的數(shù)據(jù)結(jié)構(gòu)。序列中的每個(gè)元素都分配一個(gè)數(shù)字 - 它的位置,或索引,第一個(gè)索引是0,第二個(gè)索引是1,依此類推。Python有6個(gè)序列的內(nèi)置類型,但最常見的是列表和元組。序列都可以進(jìn)行的操作包括索引,切片,加,乘,檢查成員。此外,Python已經(jīng)內(nèi)置確定序列的長度以及確定大和最小的元素的方法。列表是最常用的Python數(shù)據(jù)類型,它可以作為一個(gè)方括號(hào)內(nèi)的逗號(hào)分隔值出現(xiàn)。列表的數(shù)據(jù)項(xiàng)不需要具有相同的類型創(chuàng)建一個(gè)列表,只要把逗號(hào)分隔的不同的數(shù)據(jù)項(xiàng)使用方括號(hào)括起來即可。

元組

Python的元組與列表類似,不同之處在于元組的元素不能修改。

元組使用小括號(hào),列表使用方括號(hào)。

元組創(chuàng)建很簡單,只需要在括號(hào)中添加元素,并使用逗號(hào)隔開即可。

# 列表
# 賦值、刪除列表元素、分片賦值

# 1. 列表元素的賦值
values = ["Bill", "Mary", "John"]
values[0] = "Mike"
values[1] = 10.4
values[-1] = "Joe"
# values[-5] = "abc"  # 拋出異常
print(values)  # ['Mike', 10.4, 'Joe']

# 刪除列表中的元素
numbers = [1,2,3,4,5,6,7,8]
del numbers[3]
print(len(numbers))  # 7 
print(numbers)    # [1, 2, 3, 5, 6, 7, 8]

# 分片賦值

names = ["Bill", "Joe", "李寧","馬云"]
print(names[3:])  # ['馬云']
names[3:] = ["a","b","c"]
print(len(names)) # 6
print(names)    # ['Bill', 'Joe', '李寧', 'a', 'b', 'c']

name = list("John")  # 將一個(gè)字符串轉(zhuǎn)化為一個(gè)列表 
print(name)      #['J', 'o', 'h', 'n']
name[2:] = list("e") 
print(name)      ## ['J', 'o', 'e']
print(numbers)   # [1, 2, 3, 5, 6, 7, 8]

# 刪除 和del 函數(shù)差不多  但是del只能刪除一個(gè)  
numbers[3:6] = []
print(numbers)   # [1, 2, 3, 8]

--------------------
列表與元組的加法 乘法
data1 = [1,2,3,4]
data2 = [2,3,4,5,"hello"]

data3 = data1 + data2
print(data3)           # [1, 2, 3, 4, 2, 3, 4, 5, 'hello']

num1 = (1,2,3,4)
num2 = (3,4,'ff')

num3 = num1 + num2

print(num3)           # (1, 2, 3, 4, 3, 4, 'ff')

如何把一個(gè)元組 強(qiáng)制的轉(zhuǎn)化為一個(gè)列表呢?
num1 = (1,2,3,4)
print(list(num1))    # [1, 2, 3, 4] 

如何把一個(gè)列表 強(qiáng)制轉(zhuǎn)化為一個(gè)元組呢?
data1 = [1,2,3,4]
print(tuple(data1))   # (1, 2, 3, 4) 

列表與元組的乘法
a1 = [1,2,3,4]
print(a1 * 2)    # [1, 2, 3, 4, 1, 2, 3, 4]

b1 = (2,3,4,5)
print(b1 * 3)   # (2, 3, 4, 5, 2, 3, 4, 5, 2, 3, 4, 5)

字符串乘法: 
print('a' * 10)     # aaaaaaaaaa
print('a,' * 10)    # a,a,a,a,a,a,a,a,a,a,

data1 = [1,2,3,4]
num2 = (3,4,'ff')
print(data1 + list(num2) * 2)  # [1, 2, 3, 4, 3, 4, 'ff', 3, 4, 'ff']   先做乘法 再做加法 

from sqlalchemy.sql.expression import false
print("--------append方法---------")    # append:在列表最后(結(jié)尾)插入新的值,改變原來的列表
numbers = [1,2,3,4,5]
numbers.append(20)
print(numbers)            #[1, 2, 3, 4, 5, 20]
numbers.append("hello")         # 這個(gè)值可以為字符串
numbers.append([1,2,3])           # 也可以為另外一個(gè)列表 
print(numbers)            #[1, 2, 3, 4, 5, 20, 'hello', [1, 2, 3]]

print("---------clear方法---------")   # clear:用于清除列表的所有內(nèi)容
names = ["Bill", "Mary"]
print(names)             #['Bill', 'Mary']
names.clear()
print(names)             #[]

print("----------copy方法----------")  # copy:用于復(fù)制一個(gè)列表
a = [1,2,3,4,5]
acopy = a
acopy1 = a[:]            #通過分片復(fù)制列表  acopy1 和 a 這2個(gè)列表的值是完全一樣的 但是是2個(gè)不同的序列 
acopy2 = a.copy()
a[3] = "hello"            #這一步的目的是 要改變 3這個(gè)位置上的數(shù)
print(acopy)             #[1, 2, 3, 'hello', 5]
print(acopy1)            #[1, 2, 3, 4, 5]
print(acopy2)            #[1, 2, 3, 4, 5]
# 分片的方式或者是copy的方式  就是一個(gè)副本

print("----------count方法-----------")   # count:用于統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)
search = ["he", "new", "he", [1,2,3],"he", "world", "peter",[1,2,3]]
# 搜素“he”在search出現(xiàn)的次數(shù)
print(search.count("he"))      # 3

print(search.count([1,2,3]))     # 2

print(search.count(20))       # 如果沒有找到指定的列表元素,返回0

print("------extend方法------")   # extend:用于在列表結(jié)尾插入另一個(gè)列表,也就是讓兩個(gè)列表首尾相接。

a = [1,2,3]
b = [4,5,6]
a.extend(b)
print(a)         # [1, 2, 3, 4, 5, 6]  a 這個(gè)列表改變了 
a[2] =123
print(a)         # [1, 2, 123, 4, 5, 6]
a = [1,2,3]
b = [4,5,6]

x = a
a = a + b
x[2] = 543
print(a)         # [1, 2, 3, 4, 5, 6]
print(x)         # [1, 2, 543] 

print("------index方法------")      # index:用于從列表中找出某個(gè)值第一次出現(xiàn)的索引位置
numbers = [5,3,6,8]
print(numbers.index(6))   # 2    6的位置上2 
# print(numbers.index(10))  # 如果指定的值在列表中不存在,會(huì)拋出異常

print("-------insert方法-------")    # insert:用于將值插入到列表中的指定位置      //這個(gè)方法可以取代append 因?yàn)榭梢栽诹斜碇械娜我馕恢貌迦?numbers = [1,2,3,4,5]
#numbers.insert(3,"four")  # [1, 2, 3, 'four', 4, 5]
#print(numbers)

# 使用分片賦值完成同樣的效果
numbers[3:3]="four"
print(numbers)        # [1, 2, 3, 'f', 'o', 'u', 'r', 4, 5] 
numbers[3:3] = ["four"]   # 開始索引和結(jié)束索引相等 不代表任何的元數(shù) 只是光標(biāo)到達(dá)此位置 把這個(gè)位子代表4這個(gè)位子
print(numbers)        # [1, 2, 3, 'four', 4, 5]

print("-------pop方法-------")   #  pop:用于移除彈出列表中的元素(默認(rèn)是最后一個(gè)元素),并返回該元素的值
numbers = [1,2,3]
print(numbers.pop())   # 默認(rèn)不指定的話 就彈出 最后一個(gè)元數(shù) 3   結(jié)果為3
print(numbers.pop(1))   # 彈出第索引位子為1的元素  1表示 要彈出位子的索引   結(jié)果為2
print(numbers)      # 我們彈出了2次 就剩下一個(gè)1 了  結(jié)果為 [1]

print("---------remove方法---------")  # remove:用于移除列表中某個(gè)值的第一次匹配項(xiàng) 
words = ["he", "new", "he","yes"]
words.remove("he")
print(words)              #  結(jié)果為 ['new', 'he', 'yes'] 只移除第一個(gè) 出現(xiàn)的第一個(gè) 

print("------reverse方法--------")  # reverse:用于將列表中的元素反向存放
numbers = [1,2,3,4,5,6,7]
numbers.reverse()      # [7, 6, 5, 4, 3, 2, 1]   倒序  如果執(zhí)行2次 那么就又正面返回了
print(numbers)

# 用分片的方法  第一個(gè)為開始索引  結(jié)束索引  步長 
print(numbers[len(numbers)::-1])   # 結(jié)果為 [7, 6, 5, 4, 3, 2, 1]  

print("--------sort方法-------")  # sort:用于對(duì)列表進(jìn)行排序,調(diào)用該方法會(huì)改變原來的列表
numbers = [4,3,1,7,4,83,2,-3]
numbers.sort()    
print(numbers)      # [-3, 1, 2, 3, 4, 4, 7, 83]  排序 是一種升序的排序 改變了原來的列表 
# 要是不想改變原來的列表怎么辦?
#方法1:使用分片或者copy的方法 將這個(gè)列表復(fù)制一份 然后在排序
numbers1 = [4,3,1,7,4,83,2,-3]
numbers2 = numbers[:]          # 分片復(fù)制方法 很簡單 
numbers2.sort()
print(numbers1)     # [4, 3, 1, 7, 4, 83, 2, -3]
print(numbers2)     # [-3, 1, 2, 3, 4, 4, 7, 83]

numbers3 = numbers1.copy()   # 用copy的方法 復(fù)制
print(numbers3)         # [4, 3, 1, 7, 4, 83, 2, -3]

#方法2 我們不使用sort這個(gè)函數(shù) 因?yàn)樗淖兞嗽瓉淼牧斜?我們使用 sorted函數(shù) 這個(gè)函數(shù)是返回排好序的列表  sorted函數(shù) 不改變原來列表的順序
# 可以對(duì)任意的序列進(jìn)行排列 ,可以對(duì)字符串進(jìn)行排列
x = [5,4,7,2]
y = sorted(x)
print(x)        # [5, 4, 7, 2]
print(y)        #  [2, 4, 5, 7]

# 對(duì)字符串進(jìn)行排序

print(sorted("www.baidu.com"))  # ['.', '.', 'a', 'b', 'c', 'd', 'i', 'm', 'o', 'u', 'w', 'w', 'w']
# 利用askm值進(jìn)行排序  從低到高

# 我們可以通過關(guān)鍵字 讓他降序排列
x = [4,6,2,8,44,56,22]
x.sort(reverse = True)  # 關(guān)鍵字 reverse 為true 為降序 ;如果 為flase為升序 默認(rèn)為升序  # reverse:用于將列表中的元素反向存放
print(x)         # [56, 44, 22, 8, 6, 4, 2]
x.sort(reverse = False)
print(x)           # [2, 4, 6, 8, 22, 44, 56]
元組和列表的操作基本上上一樣的,操作呢基本上是相同的,只有一點(diǎn)不一樣,元組是只讀的,元組是不可以修改的,列表中的所有修改操作,元組都不支持
# 元組
# 元組的定義是用 () 來定義的 

a = ()     # 這里就是定義了一個(gè)空的元組 
b = (1,2,3)
c = 1,2,3,4,5  # 這樣的方式也是定義一個(gè)元組  基本上不用這個(gè) 
print(c)      # (1, 2, 3, 4, 5)

x = (30,)   # 這里一定要加 , 要不然就會(huì)當(dāng)成一個(gè)值去處理了 
print(x)     # (30,)

print((12) * 12)  # 144   這里的12沒有加, 就會(huì)當(dāng)成一個(gè)值去處理 
print((12,) * 12)  # (12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12)    這里就是當(dāng)成了一個(gè)元組去操作的 

aa = (1,2,4)
aa = aa.index(2)
print(aa)      # 結(jié)果為 1  index:用于從列表中找出某個(gè)值第一次出現(xiàn)的索引位置 

aa = (1,2,4,2,2)
# aa = aa.index(2)
aa = aa.count(2)
print(aa)     # 結(jié)果為3  count:用于統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù) 
// 元組理論上只支持 index 和  count 方法  

names = ["Bill", "Mike", "John", "Mary"]

numbers = ["1234", "4321", "6789", "6543"]

print(numbers[names.index("Mike")])  #4321
print(names[numbers.index("6543")])   # Mary

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁標(biāo)題:python中列表和元組的用法-創(chuàng)新互聯(lián)
本文URL:http://muchs.cn/article26/djeecg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、企業(yè)建站、小程序開發(fā)、虛擬主機(jī)、全網(wǎng)營銷推廣、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)