>>[1,2,3,4,5][1,2,3,4,5]>>>上面是一個匿名列表,因為沒有名稱,所以創建了也沒使用。>>>number=[1,2,3,4,5]>>>type(number)>>>foreachinnumber:...print(each)...12345>>>type()函數用于返回指定參數" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

0基礎入門學習Python(第5章)

系統 1667 0

列表,元組和字符串

5.1 列表:一個打了激素的數組

有時候可能需要將一些相互之間有關聯的數據保存在一起,這個就叫數組。Python將其稱為列表。

?

5.1.1 創建列表

>>> [1,2,3,4,5]
[1, 2, 3, 4, 5]
>>>

上面是一個匿名列表,因為沒有名稱,所以創建了也沒使用。

>>> number = [1,2,3,4,5]
>>> type(number)

>>> for each in number:
... print(each)
...
1
2
3
4
5
>>>

type()函數用于返回指定參數的類型,list表示列表

列表可以包含任意類型的數據

>>> mix = [520,"小甲魚",3.14,[1,2,3,4]]
>>> type(mix)

>>>

?

5.1.2 向列表添加元素

append() 方法

>>> number
[1, 2, 3, 4, 5]
>>> number.append(6)
>>> number
[1, 2, 3, 4, 5, 6]
>>>

?這里的append并不是一個BIF,它屬于列表對象的一個方法,中間有個. 暫時可以理解為范圍的意思,append方法屬于一個叫number的列表對象

>>> number.append(7,8)
Traceback (most recent call last):
File " ", line 1, in
TypeError: append() takes exactly one argument (2 given)
>>> number.extend(7,8)
Traceback (most recent call last):
File " ", line 1, in
TypeError: extend() takes exactly one argument (2 given)
>>> number.extend([7,8])
>>> number
[1, 2, 3, 4, 5, 6, 7, 8]
>>>

可以看到要同時添加多了元素到列表,要用extend方法,事實上,extend方法是使用一個列表來擴充另外一個列表

?

insert 方法支持將元素插入到具體位置

>>> number.insert(0,0)
>>> number
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>>

insert 方法還支持負數

>>> number.insert(-1,8.5)
>>> number
[0, 1, 2, 3, 4, 5, 6, 7, 8.5, 8]
>>>

?

5.1.3 從列表中獲取元素

通過索引可以直接獲取列表中的元素

>>> eggs = ["雞蛋","鴨蛋","鵝蛋","鐵蛋"]
>>> eggs[0]
'雞蛋'
>>> eggs[3]
'鐵蛋'
>>>

訪問列表的最后一個元素:

>>> eggs[-1]
'鐵蛋'
>>> eggs[len(eggs)-1]
'鐵蛋'
>>>

如果要將鴨蛋和鐵蛋的位置調換

>>> eggs
['雞蛋', '鴨蛋', '鵝蛋', '鐵蛋']
>>> temp = eggs[1]
>>> eggs[1] = eggs[3]
>>> eggs[3] = temp
>>> eggs
['雞蛋', '鐵蛋', '鵝蛋', '鴨蛋']
>>>

或者更簡潔的辦法:

>>> eggs
['雞蛋', '鴨蛋', '鵝蛋', '鐵蛋']
>>>
>>> eggs[1], eggs[3] = eggs[3], eggs[1]
>>> eggs
['雞蛋', '鐵蛋', '鵝蛋', '鴨蛋']
>>>

隨機抽取列表里的元素,使用random方法

>>> import random
>>>
>>> eggs
['雞蛋', '鐵蛋', '鵝蛋', '鴨蛋']
>>> prizes = eggs
>>> prizes
['雞蛋', '鐵蛋', '鵝蛋', '鴨蛋']
>>> random.choice(prizes)
'鴨蛋'
>>> random.choice(prizes)
'雞蛋'
>>> random.choice(prizes)
'鵝蛋'
>>>

?

5.1.4 從列表中刪除元素

remove pop del 方法

remove 指定一個待刪除的元素,使用remove 刪除元素,不需要知道元素的具體位置,如果不存在就會報錯

>>> eggs
['雞蛋', '鐵蛋', '鵝蛋', '鴨蛋']
>>> eggs.remove('雞蛋')
>>> eggs
['鐵蛋', '鵝蛋', '鴨蛋']
>>> eggs.remove('雞蛋')
Traceback (most recent call last):
File " ", line 1, in
ValueError: list.remove(x): x not in list
>>>

?

pop 方法是將列表中的指定元素彈出來,取出并刪除的意思,參數是一個索引

>>> eggs
['鐵蛋', '鵝蛋', '鴨蛋']
>>> eggs.pop(1)
'鵝蛋'
>>> eggs
['鐵蛋', '鴨蛋']
>>>

pop 方法如果不帶參數,默認刪除列表中的最后一個元素

?

del 是一個Python的語句,不是del方法,刪除元素,刪除列表

>>> eggs
['鐵蛋', '鴨蛋']
>>> del eggs[0]
>>> eggs
['鴨蛋']
>>> del eggs
>>> eggs
Traceback (most recent call last):
File " ", line 1, in
NameError: name 'eggs' is not defined
>>>

?

5.1.5 列表切片

?

從列表1中取出三個元素放到列表2中

>>> list1 = ['鋼鐵俠','蜘蛛俠','蝙蝠俠','綠燈俠','神奇女俠']
>>> list2 = [list1[2],list1[3],list1[4]]
>>> list2
['蝙蝠俠', '綠燈俠', '神奇女俠']
>>>

如果是取出200元素,就很尷尬了,這里可是這樣操作

>>> list1
['鋼鐵俠', '蜘蛛俠', '蝙蝠俠', '綠燈俠', '神奇女俠']
>>> list2 = []
>>> for i in range(len(list1)):
... list2.append(list1[i])
...
>>> list2
['鋼鐵俠', '蜘蛛俠', '蝙蝠俠', '綠燈俠', '神奇女俠']
>>>

但是還可以簡化操作,比如出去第二個元素到第五個元素

>>> list1
['鋼鐵俠', '蜘蛛俠', '蝙蝠俠', '綠燈俠', '神奇女俠']
>>> list2 = list1[2:5]
>>> list2
['蝙蝠俠', '綠燈俠', '神奇女俠']
>>>

?

5.1.6 進階玩法

列表切片操作其實還可以接收第三個參數,就是步長,默認值為1,下面將其修改為2

>>> list1 = range(10)
>>> list1
range(0, 10)
>>> list1 = list(range(10))
>>> list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list1[0:9:2]
[0, 2, 4, 6, 8]
>>> list1[::2]
[0, 2, 4, 6, 8]
>>>

發現了沒有:?list1[0:9:2]?list1[::2] 可以完成同樣的事情,后者更簡潔

如果將列表的步長設置為-1 ,相當月整個列表反過來了

>>> list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list1[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>>

del 語句作用于列表切片,結果有點意思

>>> list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del list1[::2]
>>> list1
[1, 3, 5, 7, 9]
>>>

delete 直接作用于原始列表了

5.1.7 一些常用的操作符

列表比較

>>> list1 = [123]
>>> list2 = [234]
>>> list1 > list2
False
>>> list1 <= list2
True
>>> list3 = ['apple']
>>> list4 = ['pineapple']
>>> list3 < list4
True
>>>

* 重復操作符,

>>> list1 * 3
[123, 123, 123]
>>>

成員關系操作。in not in

>>> list5 = list1 + list2
>>> list5
[123, 234]
>>> 123 in list1
True
>>> 456 in list1
False
>>> 456 not in list1
True
>>>

?

開發過程中,需要取出列表中重復的元素,使用in 和not in 就可以輕松實現

>>> oldlist = ['西班牙','葡萄牙','牙買加','葡萄牙','匈牙利']
>>> newlist = []
>>> for each in oldlist:
... if each not in newlist:
... newlist.append(each)
...
>>> print(newlist)
['西班牙', '葡萄牙', '牙買加', '匈牙利']
>>>

?

5.1.8 列表的小伙伴們

列表有都少個方法,可以使用dir(list)去查看

>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>>

?

count 方法用來統計元素在列表中出現的次數

>>> list1 = list(range(10))
>>> list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list1.count(1)
1
>>>

index 方法是返回某個元素在列表中第一次出現的索引值

>>> list1.index(9)
9
>>>

reverse 方法是將整個列表翻轉

>>> list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list1.reverse()
>>> list1
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>>

sort 方法是對列表元素進行排序

>>> list1
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> list1.sort()
>>> list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>

如果需要從大到小進行排序,很簡單,先調用sort方法,在調用reverse方法即可

其實sort還有第三個參數,語法為:

sort(func,key,reverse)

>>> list1
[1, 2, 55, 123, 8, 5, 6, 7, 111]
>>> list1.sort(reverse=True)
>>> list1
[123, 111, 55, 8, 7, 6, 5, 2, 1]
>>>

?

5.2 元組,戴上了枷鎖的列表

元組與列表最大的區別就是,元組只可讀,不可寫。

>>> tuple1 = (1,2,3,4,5)
>>> tuple1
(1, 2, 3, 4, 5)
>>> type(tuple1)

>>>

復制一個元組:

>>> tuple1
(1, 2, 3, 4, 5)
>>> tuple2 = tuple1[:]
>>> tuple2
(1, 2, 3, 4, 5)
>>>

?

5.2.2 更新和刪除元組

由于元祖中的元素是不允許被修改的,但是并不妨礙我們創建一個新的同名元組

>>> x_men = ('金剛狼','x教授','暴風女','火鳳凰','鐳射眼')
>>> x_men[1] = '小甲魚'
Traceback (most recent call last):
File " ", line 1, in
TypeError: 'tuple' object does not support item assignment
>>> x_men = (x_men[0],"小甲魚") + x_men[2:]
>>> x_men
('金剛狼', '小甲魚', '暴風女', '火鳳凰', '鐳射眼')
>>>

?

5.3 字符串

字符串創建,使用單引號,或者雙引號,但是要成對出現

字符串同元組一樣,創建之后就不能修改,只能通過拼接的方式實現

?

?

?

?

?

?

序號 方法及描述
1

capitalize()
將字符串的第一個字符轉換為大寫

2

center(width, fillchar)


返回一個指定的寬度 width 居中的字符串,fillchar 為填充的字符,默認為空格。
3

count(str, beg= 0,end=len(string))


返回 str 在 string 里面出現的次數,如果 beg 或者 end 指定則返回指定范圍內 str 出現的次數
4

bytes.decode(encoding="utf-8", errors="strict")


Python3 中沒有 decode 方法,但我們可以使用 bytes 對象的 decode() 方法來解碼給定的 bytes 對象,這個 bytes 對象可以由 str.encode() 來編碼返回。
5

encode(encoding='UTF-8',errors='strict')


以 encoding 指定的編碼格式編碼字符串,如果出錯默認報一個ValueError 的異常,除非 errors 指定的是'ignore'或者'replace'
6

endswith(suffix, beg=0, end=len(string))
檢查字符串是否以 obj 結束,如果beg 或者 end 指定則檢查指定的范圍內是否以 obj 結束,如果是,返回 True,否則返回 False.

7

expandtabs(tabsize=8)


把字符串 string 中的 tab 符號轉為空格,tab 符號默認的空格數是 8 。
8

find(str, beg=0 end=len(string))


檢測 str 是否包含在字符串中 中,如果 beg 和 end 指定范圍,則檢查是否包含在指定范圍內,如果是返回開始的索引值,否則返回-1
9

index(str, beg=0, end=len(string))


跟find()方法一樣,只不過如果str不在字符串中會報一個異常.
10

isalnum()


如果字符串至少有一個字符并且所有字符都是字母或數字則返回 True,否則返回 False
11

isalpha()


如果字符串至少有一個字符并且所有字符都是字母則返回 True,否則返回 False
12

isdigit()


如果字符串只包含數字則返回 True 否則返回 False..
13

islower()


如果字符串中包含至少一個區分大小寫的字符,并且所有這些(區分大小寫的)字符都是小寫,則返回 True,否則返回 False
14

isnumeric()


如果字符串中只包含數字字符,則返回 True,否則返回 False
15

isspace()


如果字符串中只包含空格,則返回 True,否則返回 False.
16

istitle()


如果字符串是標題化的(見 title())則返回 True,否則返回 False
17

isupper()


如果字符串中包含至少一個區分大小寫的字符,并且所有這些(區分大小寫的)字符都是大寫,則返回 True,否則返回 False
18

join(seq)


以指定字符串作為分隔符,將 seq 中所有的元素(的字符串表示)合并為一個新的字符串
19

len(string)


返回字符串長度
20

ljust(width[, fillchar])


返回一個原字符串左對齊,并使用 fillchar 填充至長度 width 的新字符串,fillchar 默認為空格。
21

lower()


轉換字符串中所有大寫字符為小寫.
22

lstrip()


截掉字符串左邊的空格
23

maketrans()


創建字符映射的轉換表,對于接受兩個參數的最簡單的調用方式,第一個參數是字符串,表示需要轉換的字符,第二個參數也是字符串表示轉換的目標。
24

max(str)


返回字符串 str 中最大的字母。
25

min(str)


返回字符串 str 中最小的字母。
26

replace(old, new [, max])


把 將字符串中的 str1 替換成 str2,如果 max 指定,則替換不超過 max 次。
27

rfind(str, beg=0,end=len(string))


類似于 find()函數,不過是從右邊開始查找.
28

rindex( str, beg=0, end=len(string))


類似于 index(),不過是從右邊開始.
29

rjust(width,[, fillchar])


返回一個原字符串右對齊,并使用fillchar(默認空格)填充至長度 width 的新字符串
30

rstrip()


刪除字符串字符串末尾的空格.
31

split(str="", num=string.count(str))


num=string.count(str))以 str 為分隔符截取字符串,如果 num 有指定值,則僅截取 num 個子字符串
32

splitlines([keepends])


按照行('\r', '\r\n', \n')分隔,返回一個包含各行作為元素的列表,如果參數 keepends 為 False,不包含換行符,如果為 True,則保留換行符。
33

startswith(str, beg=0,end=len(string))


檢查字符串是否是以 obj 開頭,是則返回 True,否則返回 False。如果beg 和 end 指定值,則在指定范圍內檢查。
34

strip([chars])


在字符串上執行 lstrip()和 rstrip()
35

swapcase()


將字符串中大寫轉換為小寫,小寫轉換為大寫
36

title()


返回"標題化"的字符串,就是說所有單詞都是以大寫開始,其余字母均為小寫(見 istitle())
37

translate(table, deletechars="")


根據 str 給出的表(包含 256 個字符)轉換 string 的字符,要過濾掉的字符放到 deletechars 參數中
38

upper()


轉換字符串中的小寫字母為大寫
39

zfill (width)


返回長度為 width 的字符串,原字符串右對齊,前面填充0
40

isdecimal()


檢查字符串是否只包含十進制字符,如果是返回 true,否則返回 false。

?casefold 方法用于將字符串中所有的英文大寫轉為小寫

>>> str1 = 'FishC'
>>>
>>> str1.casefold()
'fishc'
>>>

count(sub[,start[,end]])

>>> str2 = "上海自來水來自上海"
>>> str2.count('上')
2
>>> str2.count('上', 0, 5)
1

find(sub[,start[,end]]) #查找第一次出現的位置

>>> str2.find("上")
0

index(sub[,start[,end]]) #查找元素出現的第一位置,找不到拋出異常

>>> str2.index('上')
0
>>> str2.index('我')
Traceback (most recent call last):
File " ", line 1, in
ValueError: substring not found
>>> str2.find('我')
-1
>>>

?

replace(old,new[,count]) 將old字符替換為new字符

>>> str4 = 'I love you'
>>> str4.replace("you","fishc.com")
'I love fishc.com'
>>>

split(sep=None,maxsplit=-1) 用于拆分字符串

>>> str5 = "肖申克的救贖/1994年/9.6/美國"
>>> str5.split(sep='/')
['肖申克的救贖', '1994年', '9.6', '美國']
>>>

和split方法相反的是join(interable)方法用于拼接字符串

>>> countries = ['中國','俄羅斯','美國','日本','韓國']
>>> '-'.join(countries)
'中國-俄羅斯-美國-日本-韓國'
>>> ','.join(countries)
'中國,俄羅斯,美國,日本,韓國'
>>> '=='.join(countries)
'中國==俄羅斯==美國==日本==韓國'
>>>

5.3.2 格式化

格式化字符串就是按照統一的規矩去輸出一個字符串。

1. format() 方法接收位置參數和關鍵字參數,二者均傳遞到一個名為replacement的字段,而這個replacement字段在字符串內用大括號 {} 表示。

>>> "{0} love {1}.{2}".format("I","FishC","com")
'I love FishC.com'
>>>

字符串中的{0} {1} {2} 應該與位置有關,依次被format的參數替換,那么format的三個參數就是位置參數

>>> "{a} love {b}.{c}".format(a="I", b="Fishc", c="com")
'I love Fishc.com'
>>>

{a} {b} {c] 就相當于三個目標標簽,format將參數中的值替換進去。

如果將位置參數和關鍵參數綜合放在一起,那么位置參數必須在關鍵參數之前,否則會報錯

>>> "{a} love {b}.{0}".format(a="I", b="Fishc","com")
File " ", line 1
SyntaxError: positional argument follows keyword argument

>>> "{0}: {1:.2f}".format("圓周率",3.1415026)
'圓周率: 3.14'
>>> >>> "{0}: {1:.2f}".format("圓周率",3.1415026)

?

2. 格式化操作符:%

符號

說明

%c

格式化字符及其 ASCII 碼

%s

格式化字符串

%d

格式化整數

%o

格式化無符號八進制數

%x

格式化無符號十六進制數

%X

格式化無符號十六進制數(大寫)

%f

格式化浮點數字,可指定小數點后的精度

%e

用科學計數法格式化浮點數

%E

作用同 %e,用科學計數法格式化浮點數

%g

根據值的大小決定使用 %f 或 %e

%G

作用同 %g,根據值的大小決定使用 %f 或者 %E

?

>>> '%c' % 97
'a'
>>> '%c%c%c%c%c' % (70,105,115,104,67)
'FishC'
>>>

?

格式化命令的輔助操作符

符號

說明

m.n

m 是顯示的最小總寬度,n 是小數點后的位數

-

用于左對齊

+

在正數前面顯示加號(+)

#

在八進制數前面顯示 '0o',在十六進制數前面顯示 '0x' 或 '0X'

0

顯示的數字前面填充 '0' 取代空格

?

>>> '%5.1f' % 27.68
' 27.7'
>>> '%.2e' % 27.68
'2.77e+01'
>>> '%10d' % 5
' 5'
>>> '%-10d' % 5
'5 '
>>> '%010d' % 5
'0000000005'
>>> '%#X' % 100
'0X64'
>>>

?

3. python 轉義字符和含義

轉義字符 描述
\(在行尾時) 續行符
\\ 反斜杠符號
\’ 單引號
\” 雙引號
\a 響鈴
\b 退格(Backspace)
\e 轉義
\000
\n 換行
\v 縱向制表符
\t 橫向制表符
\r 回車
\f 換頁
\oyy 八進制數yy代表的字符,例如:\o12代表換行
\xyy 十進制數yy代表的字符,例如:\x0a代表換行
\other 其它的字符以普通格式輸出

5.4 序列

1. list

>>> a = list()
>>> type(a)

>>> a
[]
>>> b = list("fishc")
>>> b
['f', 'i', 's', 'h', 'c']
>>>

2.tuple

tuple() 方法把一個可迭代對象轉換為元組

3.str() 方法用于把object對象轉換為字符串

4.len(sub) 用戶返回sub的長度

5.max返回集合中的最大值

6.min 返回集合中的最小值

7.sum 方法用于返回序列的iterable的所有的總和

>>> tuple1 = 1,2,3,4,5,6
>>> sum(tuple1)
21
>>> sum(tuple1,10)
31
>>>

8.sorted 方法用于返回一個排序的列表

>>> list1 = [1,4,6,3,66,2,8,14]
>>> sorted(list1)
[1, 2, 3, 4, 6, 8, 14, 66]
>>>

9.reverse 方法用于返回一個逆向的序列值

>>> list1 = [1,4,6,3,66,2,8,14]
>>>
>>>
>>> for i in reversed(list1):
... print(i,end=',')
...
14,8,2,66,3,6,4,1,>>>
>>>

10.enumerate生成二元組,每個二元組可有索引和元素組成

>>> str1 = "FishC"
>>> for each in enumerate(str1):
... print(each)
...
(0, 'F')
(1, 'i')
(2, 's')
(3, 'h')
(4, 'C')
>>>

11.zip方法用于返回各個可迭代參數共同組成的元組

>>> list1 = [1,3,5,7,9]
>>> str1 = "FishC"
>>> for each in zip(list1,str1):
... print(each)
...
(1, 'F')
(3, 'i')
(5, 's')
(7, 'h')
(9, 'C')
>>>

完!

?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产福利一区二区在线精品 | 九九热观看视频 | 日韩xxxx做受欧美 | 亚洲精品日韩在线 | 日韩欧美在线观看视频 | 亚洲另类天天更新影院在线观看 | 天堂va在线高清一区 | 亚洲欧美日韩一区二区在线观看 | 国产成人在线视频 | 亚洲一区二区在线视频 | 久久免费视频一区 | 波多野结衣全集在线观看 | 91香蕉嫩草 | 色老头永久免费视频 | 中文字幕在线精品 | 一级做a爱片特黄在线观看yy | 黄视频免费在线 | 亚洲 欧美 日韩 综合aⅴ视频 | v片在线看 | 亚洲欧美激情四射 | 一区二区三区视频免费 | www.妞干网.com| 久久综合一个色综合网 | 99riav9.vip| 成人午夜免费在线视频 | 欧美骚视频 | 99亚洲视频| 亚洲黄色色图 | 狠狠综合久久久久综 | 国产亚洲欧美视频 | 久久夜视频 | 黄色视屏免费观看 | 亚洲激情中文 | 久久国产色 | 欧美电影一区 | 91麻豆精品国产91久久久更新资源速度超快 | 国产黄视频在线观看 | 第四色婷婷墓地 | 国产尤物在线观看一区二区 | 日韩精品第二页 | 久久亚洲春色中文字幕久久 |