最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python組合數(shù)據(jù)類型使用及說明

 更新時間:2026年03月13日 10:04:00   作者:嘻嘻哈哈Man  
本文詳細(xì)介紹了Python中列表、元組和字典的基本操作,包括創(chuàng)建、遍歷、修改、刪除元素,以及常見的內(nèi)置函數(shù)和方法,同時,還涉及了字符串和列表之間的相互轉(zhuǎn)換

1、列表

通常使用[ ]將數(shù)據(jù) 包裹起來創(chuàng)建一個列表。

這種 創(chuàng)建方式適用于對于列表中元素個數(shù)及其數(shù)值已知時。

列表中的元素的數(shù)據(jù)類型可以各不相同,列表中的元素也可以是列表

1.1 列表的遍歷

list1=["string",23,[1,10]]
#1
for L in list1:
    print(L)
#2
for i in range(len(list1)):
    print(list1[i])

1.2 替換列表

和字符串不同,列表是可變的,可以在列表中指定下標(biāo)的值對元素進(jìn)行修改

1.3 增加元素

方法一:使用“+”將一個新列表附加在原列表的尾部。

list1=["string",23,[1,10]]
#追加列表
list1=list+['a','b'];
#重復(fù)元素
for i in range(len(list1)):
    list1[i]=list1[i]*2
    print(list1[i])

方法二:使用append()方法向列表的尾部添加一個新元素。

list1.append("sda")

方法三:使用extend()方法將一個列表添加在原列表的尾部。

list1.append(['a','b'])

方法四:使用insert()方法將一個元素插入到列表的指定位置。該方法有兩個參數(shù),第一個參數(shù)為插入位置,第二個參數(shù)為插入元素。

1.4 檢索元素

使用count()方法計算列表中某個元素出現(xiàn)的次數(shù)

list1=["string",23,[1,10],“string”]
list1.count(“string”)

使用index()方法返回某一個元素在列表中的準(zhǔn)確位置。若該元素不在列表中將會出錯。值得注意的是。若使用該方法的元素在列表中存在相同項,賊返回顯示最小index的位置。

1.5 刪除元素

1、使用del語句刪除某個特定位置的元素。

list1=["string",23,[1,10]]
del list1[1]  #刪除列表第二個元素

2、使用remove()方法刪除某個特定值的元素。list1.remove(‘x’)從list1中移除最左邊出現(xiàn)的數(shù)據(jù)想x,如果找不到x就產(chǎn)生ValueError。

3、使用pop()方法來彈出指定位置的元素,缺省參數(shù)時彈出最后一個元素。彈出空數(shù)組將會報錯。

如:list1.pop(1)

1.6 字符串和列表的轉(zhuǎn)化

字符串是字符的序列,而列表是值的序列,但字符的列表和字符串并不相同。若要將一個字符串轉(zhuǎn)化為一個字符的列表,可以使用函數(shù)list。

由于list是內(nèi)置函數(shù)的名稱,所以應(yīng)當(dāng)盡量避免使用list作為變量名。list將字符串拆成字符,可以使用split方法拆成單詞。

join是split的逆操作。他接收字符串列表,并拼接每一個元素。join是字符串的方法,所以必須在分隔符上調(diào)用他,并傳入列表作為實參。

t=['you','are','so','handsome']
s=' '.join(t) 

1.7 列表常用的函數(shù)

  • cmp(列表1,列表2):若第一個列表大于第二個,結(jié)果為1,相反為-1,相同為0
  • len(列表)返回列表中元素的個數(shù)
  • max()和min():返回列表中的最大或者最小元素
  • sorted(列表)和resersed(列表):前者的功能是對列表進(jìn)行排序,默認(rèn)是按升序排序,還可在列表后面增加一個reverse參數(shù),其等于True則表示按降序排序;后者的功能是對列表進(jìn)行逆序。
sorted(list)
sorted(list,reverse=True|False)
reversed(list)
  • sum(列表):對數(shù)值型列表進(jìn)行求和運算,對非數(shù)值型列表運算則出錯

2、元組(tuple)

元組和列表類似,但是元組中的元素不能修改,列表中的元素可以修改。

2.1 元組與列表的區(qū)別

元組基本上都是不可改變的列表。元組幾乎具有列表所有的特性,除開那些違反不變性的特征。也就是說,沒有函數(shù)和方法可以改變元組。不可變的tuple有什么意義?因為tuple不可變,所以代碼更安全。

如果可能,能用tuple代替list就盡量用tuple。當(dāng)后續(xù)介紹字典類型時,會發(fā)現(xiàn)字典的鍵必須是不可變的,因此元組可以用作字典的鍵,但列表不能。

語法上,元組就是用逗號分隔的一列值,使用“=”將元組賦給變量

tuple1='a','1','boy'

雖然不是必須,但是元組常常用括號括起來。

tuple1=('a','1','boy')

新建元組的另一種形式是使用內(nèi)置函數(shù)tuple。不帶參數(shù)時,它會新建一個空元組。

>>> t=tuple()
>>> t
()

但是,要定義一個只有一個元素的tuple,例如:

>>> t=(1)
>>> t
1

則定義的不是tuple,是1這個數(shù)!這是因為括號()既可以表示tuple,又可以表示數(shù)學(xué)公式中的小括號,這就產(chǎn)生了歧義。因此,Python規(guī)定,這種情況下,按小括號進(jìn)行計算,計算結(jié)果自然是1。所以,只有一個元素的tuple定義時必須加一個逗號“,”來消除歧義,即:

>>> t=(1,)
>>> t
(1,)

其他序列(列表和字符串)的操作都可用于元組,除了那些會違反不變性的列表運算符。“+”和“*”運算符同樣適用于元組。成員操作(in)和for循環(huán)同樣適用于元組長度(len)、最大(max)和最?。╩in)同樣適用于元組。

沒有任何的操作能更改元組。例如append、extend、insert、remove、pop、reverse和sort不能用于元組。

然而,當(dāng)元組中存在列表元素項時,就可以使用上述如append等方法修改list中的元素,達(dá)到間接修改元組元素的目的。

3、字典

字典是集合不是序列。字典可以看出元素對構(gòu)成的列表,其中一個元素是鍵,另一個元素是值。在搜索字典時,首先查找鍵,當(dāng)查找到鍵后就可以直接獲取該鍵對應(yīng)的值,效率高。

字典是使用{ }定義的。

創(chuàng)建字典使用dict方法

#遍歷字典
d={"id":1,"name":"marry","old":20}
for key in d.keys():
    print(key,d[key])

因為字典是無序的,類似于append在尾部添加鍵—值對的方法是沒有任何意義的。

3.5 字典檢索

可以試用版in運算符來測試某個特定的鍵是否在字典中。表達(dá)式k in d(d為字典)查找鍵,而不是值。

查看一個值是不是出現(xiàn)在字典中,可以使用方法values,它返回改字典的所有值的一個集合,然后檢索當(dāng)前值是否在集合中即可。

通過add(key)方法可以添加元素到set中,可以重復(fù)添加,但不會有效果

s1=set([1,2,3])
s2=set([2,3,4])
#交集
#s1.intersection(s2)   s1&s2
print("交集: %s  方法二:%s"%(s1.intersection(s2),s1&s2))

#并集
#s1.union(s2)    s1|s2
print("并集: %s  方法二:%s "%(s1.union(s2),s1|s2))

#差集
#s1.difference(s2) s2.difference(s1)  s1-s2  s2-s1
print(s1.difference(s2),s2.difference(s1),s1-s2,s2-s1)

#對稱差
#s1.symmetric_difference(s2)  s2.symmetric_difference(s1)
print(s1.symmetric_difference(s2),s2.symmetric_difference(s1))

#子集和超集
sSet=set([1,2,3])
bSet=set([1,2,3,4,5,6])
print(sSet.issubset(bSet)) #sSet是不是bSet的子集
print(sSet.issuperset(bSet))#sSet是不是bSet的超集

生成器:

楊輝三角

def triangles():
    s=[1]
    while True:
        yield s[:len(s)]
        s.append(0)
        s = [s[i]+s[i-1] for i in range(len(s))] 

n = 0
results = []
for t in triangles():
    results.append(t)
    n = n+1
    if n == 10:
        break
for t in results:
    print(t)   

#print
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
[1, 6, 15, 20, 15, 6, 1]
[1, 7, 21, 35, 35, 21, 7, 1]
[1, 8, 28, 56, 70, 56, 28, 8, 1]
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]

Process finished with exit code 0

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

怀柔区| 平湖市| 团风县| 泗水县| 衡水市| 洮南市| 龙口市| 金门县| 襄垣县| 托克逊县| 武胜县| 巢湖市| 银川市| 陆丰市| 库伦旗| 团风县| 山阳县| 榆树市| 沅江市| 恩施市| 营山县| 丽水市| 信宜市| 湾仔区| 宿松县| 长垣县| 东阳市| 武鸣县| 涞源县| 铁力市| 宕昌县| 章丘市| 偏关县| 炎陵县| 宜阳县| 镇坪县| 荣成市| 靖安县| 洪江市| 庄浪县| 茂名市|