主頁 > 知識(shí)庫(kù) > python中必會(huì)的四大高級(jí)數(shù)據(jù)類型(字符,元組,列表,字典)

python中必會(huì)的四大高級(jí)數(shù)據(jù)類型(字符,元組,列表,字典)

熱門標(biāo)簽:遼寧400電話辦理多少錢 電信營(yíng)業(yè)廳400電話申請(qǐng) 江蘇房產(chǎn)電銷機(jī)器人廠家 悟空智電銷機(jī)器人6 外呼不封號(hào)系統(tǒng) 荊州云電銷機(jī)器人供應(yīng)商 溫州旅游地圖標(biāo)注 幫人做地圖標(biāo)注收費(fèi)算詐騙嗎 蘇州電銷機(jī)器人十大排行榜

一. 字符串

生活中我們經(jīng)常坐大巴車,每個(gè)座位一個(gè)編號(hào),一個(gè)位置對(duì)應(yīng)一個(gè)下標(biāo)。 字符串中也有下標(biāo),要取出字符串中的部分?jǐn)?shù)據(jù),可以用下標(biāo)取。

  • python中使用切片截取字符串其中的一段內(nèi)容,切片截取的內(nèi)容不包含結(jié)束下標(biāo)對(duì)應(yīng)的數(shù)據(jù)。
  • 切片使用語法:[起始下標(biāo):結(jié)束下標(biāo):步長(zhǎng)] ,步長(zhǎng)指的是隔幾個(gè)下標(biāo)獲取一個(gè)字符。

注意:下標(biāo)會(huì)越界,切片不會(huì)

常用函數(shù)

練習(xí)

Test='rodma  '
print(type(Test))
print('Test的一個(gè)字符串%s'%Test[0])#跟數(shù)組差不多
#循環(huán)輸出
for i in Test:
     print(i,end=" ")#也可以用‘ '
print('\n')

# count():統(tǒng)計(jì)出現(xiàn)的次數(shù)
print(Test.count('r'))

# join():循環(huán)取出所有值用xx去連
str='-'
print(str.join(Test))

#去除兩邊空格strip(),去除右邊空格:lstrip(),去除右邊空格:rstrip
print(Test.strip())

#復(fù)制字符串,id函數(shù)可以查看對(duì)象的內(nèi)存地址
print('Test的內(nèi)存地址%d'%id(Test))
b=Test #在此只是把a(bǔ)對(duì)象的內(nèi)存地址賦給了b
print('Test的內(nèi)存地址%d'%id(Test))
print(b)

#定義一個(gè)數(shù)接下來用
datastr='i love Python'
#find函數(shù):可以查找目標(biāo)對(duì)象在序列對(duì)象中的為值,如果沒找到就返回-1
print(datastr.find('M'))
# index()函數(shù):檢測(cè)字符串中是否包含子字符串 返回的是下標(biāo)值
print(datastr.index('i'))
#find 和 index 的區(qū)別:如果index沒有找到對(duì)象就會(huì)報(bào)錯(cuò),find輸出-1,找到輸出0

#starswith()函數(shù):判斷開頭,如果是就true
#endswith()函數(shù)是判斷結(jié)尾
print(datastr.startswith('i'))

# capitalize():首字母轉(zhuǎn)換為大寫
# isalnum():判斷是否是字母和數(shù)字,全部是字母就輸出true,有空格也不行
# isalpha() :判斷是否是字母
# isdigit():判斷是否全部是數(shù)字
# swapcase():大寫變小寫,小寫變大寫
# title() :把每個(gè)單詞的首字母變成大寫
# lower():裝換為小寫。
# upper():轉(zhuǎn)換為大寫

a='tsx'
print(type(a))
print(datastr.capitalize())
print(a.isalnum())
print(datastr.isalpha())
print('abc123'.isdigit())
print(datastr.swapcase())
print(datastr.title())
print(datastr.lower())
print(datastr.upper())

# 切片:是指截取字符串中的其中一段內(nèi)容。
# 切片使用語法:[起始下標(biāo):結(jié)束下標(biāo):步長(zhǎng)]
# 切片截取的內(nèi)容不包含結(jié)束下標(biāo)對(duì)應(yīng)的數(shù)據(jù),步長(zhǎng)指的是隔幾個(gè)下標(biāo)獲取一個(gè)字符。
# slice [start:end:step] 左閉右開  start=valueend 范圍
# 下標(biāo)會(huì)越界,切片不會(huì)
#記住左閉右開的原則

# 定義一個(gè)對(duì)象
strmgs='Never give up'

# 1——8之間的數(shù)據(jù)
print(strmgs[1:8])
# 第3個(gè)字符到最后
print(strmgs[2:])
# 第1個(gè)字符到第3個(gè)    溫馨提示:記住左閉右開的原則
print(strmgs[:3])
# 步長(zhǎng)是什么?比如定義2,就是從當(dāng)前開始到2個(gè)下標(biāo)獲取一個(gè)字符,在通俗點(diǎn)就是隔一個(gè)獲取下一個(gè)
print(strmgs[::2])
# 負(fù)方向是倒序輸出,如果步長(zhǎng)選為-1,則反方向輸出
print(strmgs[::-1])
# 同理,如果步長(zhǎng)是-2,則反方向隔兩個(gè)下標(biāo)獲取一個(gè)字符
print(strmgs[::-2])

# 共有方法有三種 + * in
# +:兩個(gè)對(duì)象相加操作,會(huì)合并兩個(gè)對(duì)象
# *:對(duì)象自身按指定次數(shù)進(jìn)行 + 操作
# in:判斷指定元素是否存在于對(duì)象中,輸出的是bool值

strA='I love'
strB='Python'
print(strA+strB)
print(strA*3)
print('I' in strA)

'''輸出
class 'str'>
Test的一個(gè)字符串r
r o d m a     

1
r-o-d-m-a- - 
rodma
Test的內(nèi)存地址1863907131504
Test的內(nèi)存地址1863907131504
rodma  
-1
0
True
class 'str'>
I love python
True
False
False
I LOVE pYTHON
I Love Python
i love python
I LOVE PYTHON
ever gi
ver give up
Nev
Nvrgv p
pu evig reveN
p vgrvN
I lovePython
I loveI loveI love
True
'''

二. 列表

list是一種有序的集合[],可以隨時(shí)添加和刪除其中的元素。

列表的下標(biāo)取值/切片/是否越界與字符串一致,區(qū)別就是列表是獲取元素。

練習(xí)

li=[] # 空列表
li=[1,2,3,4,'python',True]
print(type(li))
# #len函數(shù)可以獲取到列表對(duì)象中的數(shù)據(jù)個(gè)數(shù)
print(len(li))

# append();在列表后面追加元素
# count(): 統(tǒng)計(jì)元素出現(xiàn)的次數(shù)
# extend(): 擴(kuò)展,相當(dāng)于批量添加
# index(): 獲取指定元素索引號(hào)
# insert(): 在指定位置插入
# pop(): 刪除后面一個(gè)元素
# remove():移除左邊找到的第一個(gè)元素
# reverse(): 反轉(zhuǎn)列表
# sort():列表排序 reverse=True為倒序

listA=['abcd',785,12.23,'qiuzhi',True]
# print('--------------增加-----------------------')
print('追加之前',listA)
listA.append(['fff','ddd']) #追加操作
listA.append(8888)
print('追加之后',listA)
listA.insert(1,'這是我剛插入的數(shù)據(jù)') #插入操作 需要執(zhí)行一個(gè)位置插入
print(listA)
rsData=list(range(10)) #強(qiáng)制轉(zhuǎn)換為list對(duì)象
print(type(rsData))
listA.extend(rsData) #拓展  等于批量添加
listA.extend([11,22,33,44])
print(listA)
# print('-----------------修改------------------------')
# print('修改之前',listA)
# listA[0]=333.6
# print('修改之后',listA)
listB=list(range(10,50))
print(type(listB))
print('------------刪除list數(shù)據(jù)項(xiàng)------------------')
print(listB)
# del listB[0] #刪除列表中第一個(gè)元素
# del listB[1:3] #批量刪除多項(xiàng)數(shù)據(jù) slice
# listB.remove(20) #移除指定的元素  參數(shù)是具體的數(shù)據(jù)值
listB.pop(1) #移除制定的項(xiàng)  參數(shù)是索引值
print(listB)
#beg -- 開始索引,默認(rèn)為0。
#end -- 結(jié)束索引,默認(rèn)為字符串的長(zhǎng)度。
print(listB.index(19))  #返回的是一個(gè)索引下標(biāo)



# 查找,跟元祖有點(diǎn)不一樣,這是左開右閉

print(type(listA))
print(listA) #輸出完整的列表
print(listA[0]) #輸出第一個(gè)元素
print(listA[1:3]) #從第二個(gè)開始到第三個(gè)元素
print(listA[2:]) #從第三個(gè)元素開始到最后所有的元素
print(listA[::-1]) #負(fù)數(shù)從右像左開始輸出

print(listA*3) #輸出多次列表中的數(shù)據(jù)【復(fù)制】

a=[21,45,66,78]
b=[1,2]

def add100(x):
    i= 0
    for item in x:
        x[i]=item+100
        i+=1
        pass
    return x
    pass
print(add100(b))
def add100(x):
    x+=100
    return x
list2=list(map(add100,a))
print(list2)
a=[21,45,66,78]
print(list(map(lambda x:x+100,a)))

def Old(x):
    if x>50:
        return x
    pass
print(list(filter(Old,a)))
'''輸出
class 'list'>
6
追加之前 ['abcd', 785, 12.23, 'qiuzhi', True]
追加之后 ['abcd', 785, 12.23, 'qiuzhi', True, ['fff', 'ddd'], 8888]
['abcd', '這是我剛插入的數(shù)據(jù)', 785, 12.23, 'qiuzhi', True, ['fff', 'ddd'], 8888]
class 'list'>
['abcd', '這是我剛插入的數(shù)據(jù)', 785, 12.23, 'qiuzhi', True, ['fff', 'ddd'], 8888, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44]
class 'list'>
------------刪除list數(shù)據(jù)項(xiàng)------------------
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
[10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
8
class 'list'>
['abcd', '這是我剛插入的數(shù)據(jù)', 785, 12.23, 'qiuzhi', True, ['fff', 'ddd'], 8888, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44]
abcd
['這是我剛插入的數(shù)據(jù)', 785]
[785, 12.23, 'qiuzhi', True, ['fff', 'ddd'], 8888, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44]
[44, 33, 22, 11, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 8888, ['fff', 'ddd'], True, 'qiuzhi', 12.23, 785, '這是我剛插入的數(shù)據(jù)', 'abcd']
['abcd', '這是我剛插入的數(shù)據(jù)', 785, 12.23, 'qiuzhi', True, ['fff', 'ddd'], 8888, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 'abcd', '這是我剛插入的數(shù)據(jù)', 785, 12.23, 'qiuzhi', True, ['fff', 'ddd'], 8888, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 'abcd', '這是我剛插入的數(shù)據(jù)', 785, 12.23, 'qiuzhi', True, ['fff', 'ddd'], 8888, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44]
[101, 102]
[121, 145, 166, 178]
[121, 145, 166, 178]
[66, 78]

'''

三. 元組

  1. 元組與列表類似,不同之處在于元組的元素不能修改。元組使用小括號(hào),元組也是通過下標(biāo)進(jìn)行訪問
  2. 元組創(chuàng)建很簡(jiǎn)單,只需要在括號(hào)中添加元素,并使用逗號(hào)隔開即可。
  3. 元組的內(nèi)置方法:

count:統(tǒng)計(jì)元素在元組中出現(xiàn)的次數(shù)
index :查找指定元素在元組中的下標(biāo)索引

練習(xí)

#空元組
tupleA=()
print(type(tupleA))
#元組也可以用for語句查詢

tupleA=(1,2,3,'cd','a')
for item in tupleA:
    print(item,end=' ')

# 元組也可以使用切片,左閉右開
print(tupleA[-2:-1:])#倒著取下標(biāo) 為-2 到 -1 區(qū)間的

#假設(shè)元組中放入隊(duì)列
tupleA=(1,2,3,'cd','a',[11,22,33])
print(tupleA)
#可以對(duì)隊(duì)列的值進(jìn)行修改(原本元組是不可以修改的)
print(type(tupleA[5]))
tupleA[5][0]=5500
print(tupleA)
tupleA[5].append('chen')
print(tupleA)
'''輸出
class 'tuple'>
1 2 3 cd a ('cd',)
(1, 2, 3, 'cd', 'a', [11, 22, 33])
class 'list'>
(1, 2, 3, 'cd', 'a', [5500, 22, 33])
(1, 2, 3, 'cd', 'a', [5500, 22, 33, 'chen'])
'''

四. 字典

  • 字典是Python的中重要的一種數(shù)據(jù)類型,可以存儲(chǔ)任意對(duì)像。
  • 字典是以鍵值對(duì)的形式創(chuàng)建的{'key':'value'}利用大括號(hào)包裹著。
  • 訪問值的安全方式get方法,在我們不確定字典中是否存在某個(gè)鍵而又想獲取其值時(shí),可以使用get方法,還可以設(shè)置默認(rèn)值

注意:

字典的鍵(key)不能重復(fù),值(value)可以重復(fù)。
字典的鍵(key)只能是不可變類型,如數(shù)字,字符串,元組。

常用方法

練習(xí)

# 空字典
dictA={}
print(type(dictA))
# 如何添加字典數(shù)據(jù)? key:value
dictA['name']='陳運(yùn)智'
dictA['age']=30
print(dictA)
# 批量添加
dictA={"pro":'藝術(shù)','shcool':'北京電影學(xué)院','age':30,'pos':'xueshen'}
print(dictA)
# 通過鍵位修改值
dictA['pro']='學(xué)生'
print(dictA)
# 添加更多數(shù)據(jù)
dictA.update({'name':'陳運(yùn)智'})
print(dictA)
# 獲取所有鍵和值
print(dictA.keys(),dictA.values())
print(dictA.items())
for key,value in dictA.items():
   print('%s==%s'%(key,value))
# 指定鍵刪除
del dictA['name']
print(dictA)
# 按照key和value排序
print(sorted(dictA.keys()))
#print(sorted(dictA.values()))

#拷貝, copy,deepcopy 會(huì)拷貝復(fù)雜類型,如 list、dict
import copy
dictB=copy.copy(dictA)#淺拷貝
dictc=copy.deepcopy(dictA)#深拷貝

print(id(dictc))
print(id(dictA))
print(id(dictB))

dictB['age']='20'
dictc['age']='20'
print(dictB)
print(dictc)
print(dictA)
print(type(dictB))
print(type(dictc))

以上就是python中必會(huì)的四大高級(jí)數(shù)據(jù)類型(字符,元組,列表,字典)的詳細(xì)內(nèi)容,更多關(guān)于python數(shù)據(jù)類型的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Python基礎(chǔ)之?dāng)?shù)據(jù)類型知識(shí)匯總
  • 深入理解Python變量的數(shù)據(jù)類型和存儲(chǔ)
  • Python變量及數(shù)據(jù)類型用法原理匯總
  • python中關(guān)于數(shù)據(jù)類型的學(xué)習(xí)筆記
  • Python 分布式緩存之Reids數(shù)據(jù)類型操作詳解
  • python數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換實(shí)例詳解
  • Python xml、字典、json、類四種數(shù)據(jù)類型如何實(shí)現(xiàn)互相轉(zhuǎn)換
  • python數(shù)據(jù)類型可變不可變知識(shí)點(diǎn)總結(jié)
  • Python如何將函數(shù)值賦給變量
  • Python基礎(chǔ)之?dāng)?shù)據(jù)類型詳解

標(biāo)簽:濟(jì)南 宿遷 三沙 喀什 臺(tái)灣 黃山 景德鎮(zhèn) 欽州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python中必會(huì)的四大高級(jí)數(shù)據(jù)類型(字符,元組,列表,字典)》,本文關(guān)鍵詞  python,中必,會(huì)的,四大,高級(jí),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python中必會(huì)的四大高級(jí)數(shù)據(jù)類型(字符,元組,列表,字典)》相關(guān)的同類信息!
  • 本頁收集關(guān)于python中必會(huì)的四大高級(jí)數(shù)據(jù)類型(字符,元組,列表,字典)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章