溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python基礎(chǔ)入門(mén)之列表的示例分析

發(fā)布時(shí)間:2021-06-12 11:27:14 來(lái)源:億速云 閱讀:268 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹了python基礎(chǔ)入門(mén)之列表的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

因?yàn)樽罱居衟ython項(xiàng)目維護(hù),所以把python的基礎(chǔ)入門(mén)的書(shū)整理一遍,因?yàn)橛行┩浟?,同時(shí)在看<<python編程>>這本書(shū)的時(shí)候覺(jué)得對(duì)有基礎(chǔ)的有很多的贅余,打算直接整理不同之處。

因?yàn)閜ython 有2版本和3版本,如果新學(xué)的話,建議直接3版本,2版本已經(jīng)不會(huì)再升級(jí)了,也就是不再維護(hù)了。

同時(shí)也規(guī)勸一句,如果是用python專門(mén)去做網(wǎng)站的話,那么是不建議的,因?yàn)檫@不是python的強(qiáng)項(xiàng)。同時(shí)也不要誤以為python動(dòng)態(tài)語(yǔ)言性能效率就不適合做一些服務(wù),因?yàn)橛行┓?wù)性能不是一個(gè)瓶頸,可能問(wèn)題在網(wǎng)絡(luò)一頭等。

總之一句話,py發(fā)展這么快,一個(gè)是因?yàn)樯鐓^(qū),同時(shí)也是因?yàn)閜ython這門(mén)語(yǔ)言的設(shè)計(jì)上,那么就先來(lái)看下列表吧,因?yàn)樘S昧?。噢,如果你還不會(huì)裝python,那么直接百度吧,建議一開(kāi)始直接exe安裝。

正文

在此之前呢,先介紹一個(gè)string類型,因?yàn)閟trign類型的介紹很簡(jiǎn)短,那么就直接放到這一小節(jié)中。

name="jack rose";
print(name.title())

那么它會(huì)輸出,Jack Rose,這個(gè)title就是用來(lái)首字母大寫(xiě)的。

看下c# 的首字母大寫(xiě):Strings.StrConv("str.str.str str_str", VbStrConv.ProperCase, System.Globalization.CultureInfo.CurrentCulture.LCID);

是的,python就是這么方便,操作數(shù)據(jù)的方便,后面你能更加感受到。

name="jack rose";
str1=name+1+"2";
print(name.title())

但是依然有值得注意的地方,在其他高級(jí)語(yǔ)言如python和java中是沒(méi)得問(wèn)題的,但是在py中是存在問(wèn)題的。

Traceback (most recent call last):
  File "index.py", line 2, in <module>
    str1=name+1+"2";
TypeError: cannot concatenate 'str' and 'int' objects

為什么不會(huì)自動(dòng)轉(zhuǎn)換呢?他們兩個(gè)對(duì)象不一樣,那么就會(huì)失敗,為啥會(huì)這樣呢?這個(gè)是涉及問(wèn)題,來(lái)看下int 如果轉(zhuǎn)換為str的

a=str(1)
print(a)

和其他語(yǔ)言不一樣,其他語(yǔ)言有tostring,那么轉(zhuǎn)換的時(shí)候就會(huì)調(diào)用tostring,而py中,是一個(gè)str函數(shù),設(shè)計(jì)的不同意味著他們的寫(xiě)法不同。

看下其他幾個(gè)簡(jiǎn)單的。

name=" jack rose ";
print(name.lstrip())

lstrip 是去除左邊的空格,然后rstrip 去除右邊的空格。在此說(shuō)明的不是說(shuō)lstrip這個(gè)函數(shù),而是想說(shuō)明,py有很多函數(shù)分為左右,如果你發(fā)現(xiàn)一個(gè)函數(shù)有從左查詢,那么一定有一個(gè)從右查詢,這就是為啥py這么方便,因?yàn)樘峁┝颂嗪瘮?shù)。

python基礎(chǔ)入門(mén)之列表的示例分析

是的,它的語(yǔ)義化,讓你不需要去尋找哪個(gè)函數(shù)干什么的,從英文中就能推斷出。string 到此就結(jié)束了,那么看到下本章的主要,列表。

增刪改查

首先python沒(méi)有數(shù)組,一門(mén)動(dòng)態(tài)語(yǔ)言要啥數(shù)組呢?來(lái)看看其操作方便的列表。

name=" jack rose ";
list=['a','b','c']
print(list);

輸出:['a','b','c'],好吧這里可能有人疑問(wèn)這為啥不是數(shù)組呢?你可以理解為這是一種語(yǔ)法。

為了證明其不是一個(gè)string數(shù)組:

list=['a','b','c']
list.append(1);
print(list);

輸出:['a', 'b', 'c', 1]

好的上述你看到了添加,那么看下插入吧。

list=['a','b','c']
list.append(1);
list.insert(0,1);
print(list);

輸出:[1, 'a', 'b', 'c', 1]

它的規(guī)則也很簡(jiǎn)單,就是在當(dāng)前位置寫(xiě)入,其他的位置往后移動(dòng)。

在此說(shuō)明一點(diǎn),我們可以像索引一樣去訪問(wèn)列表。

list=['a','b','c']
print(list[0]);

輸出a。除了這樣,我們還可以list[-1],將會(huì)返回'c',而不是異常,這讓我們的計(jì)算方便很多,我們不需要去計(jì)算最后一個(gè)位置的位置。
看下刪除:

list=['a','b','c']
del list[0]
print(list);

輸出:['b', 'c']

在這里說(shuō)明一下,不僅是列表這樣刪除,其他的類型也是這樣刪除的。

a='a';
del a;
print(a);

是的,這樣就沒(méi)有a了。

Traceback (most recent call last):
  File "index.py", line 5, in <module>
    print(a);
NameError: name 'a' is not defined

這樣說(shuō)吧,a并沒(méi)有刪除,只是刪除了a和'a'的聯(lián)系,就想指針指向一樣。

指定位置彈出:

list=['a','b','c']
list.pop();
print(list);

返回:[a,b]
那么默認(rèn)是彈出最后一個(gè)位置,如果指定位置的話,比如說(shuō)第一個(gè),那么pop(0)即可。

那么如何根據(jù)值來(lái)刪除呢?

list=['a','b','c','a']
list.remove('a');
print(list);

輸出值:['b', 'c', 'a']

可以看到值刪除了一個(gè),那么如果全部刪除呢?這個(gè)后面系列將會(huì)介紹到,也許你現(xiàn)在可以想象遍歷一下。對(duì)了有一個(gè)函數(shù)count,list.count('a')會(huì)計(jì)算a出現(xiàn)的次數(shù),而正在的計(jì)算list大小,是通過(guò)len,這個(gè)函數(shù),如len(list)

在我們編程中排序時(shí)少不了的,有臨時(shí)排序還有永久排序。臨時(shí)排序就是返回一個(gè)新的list,永久就是直接修改list,他們分別對(duì)應(yīng)的函數(shù)是:

list=['b','c','d','a']
print(sorted(list));
print(list);
list.sort();
print(list);

輸出:

['a', 'b', 'c', 'd']
['b', 'c', 'd', 'a']
['a', 'b', 'c', 'd']

在此你可以知道sorted 是臨時(shí)排序,sort 是永久排序,值得總結(jié)的是:一般來(lái)說(shuō)自身函數(shù)的調(diào)用是永久操作自己,而外部會(huì)創(chuàng)造另一個(gè)對(duì)象。

再舉另外一個(gè)例子:reverse,list.reverse是操作自己,而不是返回一個(gè)新對(duì)象,reversed(list);返回一個(gè)新對(duì)象。

循環(huán)

list=['b','c','d','a']
for item in list:
    print(item)

循環(huán)非常的簡(jiǎn)單,但是值得注意的是list后面需要又要給:,這是需要注意的語(yǔ)法。

同樣需要介紹另外一個(gè)東西,pass.

假如我們for語(yǔ)句什么都不做,好的,不要糾結(jié)為啥什么都不做。
那么可以這樣:

list=['b','c','d','a']
for item in list:
    pass

如果沒(méi)有pass,那么將會(huì)報(bào)錯(cuò),pass 是占位語(yǔ)句。

其他的功能函數(shù)

前面介紹到,py操作數(shù)據(jù)是真的方便,那么如果要生成一些數(shù)據(jù)是否同樣方便?

for item in range(0,10):
print(item);

輸出:

0
1
2
3
4
5
6
7
8
9

這樣就生成了0-9。前開(kāi)后閉類型的。

同樣你可以跳過(guò)一些:

for item in range(0,10,2):
    print(item);

0
2
4
6
8

同樣可以進(jìn)行一些統(tǒng)計(jì):

list=range(0,10,2);
print(min(list));
print(max(list));
print(sum(list));

得到0,8,20。

給各位介紹一個(gè)神器的語(yǔ)法,比如你想要上面的list增加1,然后賦值給一個(gè)新的list,那么怎么寫(xiě)呢?

list=range(0,10,2);
list2=[item++1 for item in list]
print(list2);

這樣就是:[1, 3, 5, 7, 9]

這里我寫(xiě)的是item++1,這和我們c# item++一樣,語(yǔ)法不通而已。

那么如果我要復(fù)制一個(gè)list怎么辦呢?

list=range(0,10,2);
list2=list[:]
print(list2);

這樣就行。[:]是否只能用來(lái)copy呢?當(dāng)然不是,它是片切的一種語(yǔ)法。

list=range(0,10,2);
print(list);
list2=list[1:2]
print(list2);

輸出:

[0, 2, 4, 6, 8]
[2]

獲取從1開(kāi)始,到2介紹,且不包含2。

還是前開(kāi)后閉原則。

除了可以填寫(xiě)正數(shù),你還可以填寫(xiě)負(fù)數(shù):

list=range(0,10,2);
print(list);
list2=list[-1:]
print(list2);

相信也猜到了,沒(méi)錯(cuò)就是獲取最后一個(gè)。

元組

如果你希望你定下的一些數(shù)據(jù)被修改,那么你可以使用元組。

tuple=(100,200)

這樣就創(chuàng)建了一個(gè)元組,是的,把一些數(shù)據(jù)放在括號(hào)中。

元組一般用于查詢,他的函數(shù)也非常少。

python基礎(chǔ)入門(mén)之列表的示例分析

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“python基礎(chǔ)入門(mén)之列表的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI