python之列表 元組 字典 字串
阿新 • • 發佈:2019-02-12
列表
列表是一種有序可重複的序列,可以隨意的增/刪/改/查,每個元素的位置都分配了一個數字索引,從0 開始,依次遞增。
××通過位置索引操作list××
list1 = ['Google', 'Runoob', 1997, 2000]
list2 = [1,2,3,4]
list1[0] #訪問
list2[1:4] #訪問,包含1不包含4
list1[-1] #訪問倒數第一個元素
list[-4:] #訪問從倒數第四個元素開始到最後一個元素
list[2] = 2001 #更新
del list[2] #刪除
××list操作符××
list1+list2 #列表拼接
list3+=list1 #列表拼接
len(list1) #列表元素的個數
min(list) #返回列表最小值
max(list) #返回列表最大追值
list(元祖) #將元組轉化成列表
['Hi!'] * 4 #結果['Hi!', 'Hi!', 'Hi!', 'Hi!']
3 in list #元素3是否存在於list中,存在返回True,否則返回False,經常那個用在if或while的條件判斷中
for x in list1: print(x, end=" ") #迭代,x一次取值list1中元素的值
××list操作方法××
list .append(”abc“) #在列表末尾追加新的物件,物件可以是任意型別,比如列表,元組,字典等都可
list.count('Google') #統計元素'Google'在列表中出現的次數
list.extend(seq) #跟符號 + 的功能類似,將seq的元素依次拼接到list的末尾
list.index('Google') #返回'Google'第一次 出現的索引位置
list.insert(3, "abc") #將元素"abc"插入到位置3處
list.pop() #移除列表中的最後一個元素,並返回該元素
list.remove(obj) #移除值obj的第一次匹配
list.clear() #清空列表list
list.copy() #複製列表list
元組
元組和列表類似,不同之處在於元組的元素不能修改,但訪問,拼接,清空都還是可以的
tup1 = ('Google', 'Runoob', 1997, 2000) #建立元組
tup2 = "a", "b", "c", "d" # 建立元組時可以不加括號
tup13= (50,) #元組只有一個元素時,元素後使用逗號
訪問元組跟list一樣,tuple[1] tuple[-1] tuple[1:5]
元組中的元素是不能被修改的,但是我們可以拼接,tup1 + tup2
元組中的元素是不能被刪除的,但是我們可以清空,del tup
元組運算子
運算子 | 結果 | 描述 |
---|---|---|
len((1, 2, 3)) | 3 | 計算元素個數 |
(1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | 元組拼接 |
(‘Hi!’,) * 4 | (‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’) | 複製 |
3 in (1, 2, 3) | True | 判斷元素是否存在 |
for x in (1, 2, 3): print (x,) | 1 2 3 | 迭代 |
**內建函式**
len(tuple) #元組元素的個數
max() #最大值
min() #最小值
tuple(seq) #將列表轉化為元組
字典
字典是一種非序列集合,即字典是無序的,可儲存任意型別物件。鍵必須是唯一的且不可改變,但值可以相同,也可改變。
**通過下標訪問,修改,增加字典**
dict={'name': 'czz', 'age': 32, 'class': 'first', 1: 'number', (1, 2, 3): 'tuple'} #定義字典,字典的鍵型別可以是字串/數字/元組,但是不能為list
dict['name'] #使用鍵值訪問字典元素
dict['love']="money" #鍵名不存在,則增加元素
dict['name']='tjy' #鍵名存在,則修改元素的值為"tjy"
```
**內建函式**
dict={'name': 'czz', 'age': 32, 'class': 'first'}
len(dict) #鍵值對的個數,結果為3
str(dict) #以字串形式輸出字典,“dict”
type(dict) #檢視字典的型別,輸出<class 'dict'>
**內建方法**
dict={'name': 'czz', 'age': 32, 'class': 'first'}
dict.copy()
dict.fromkeys()
dict.get(’name‘)/dict.get(’name‘,"111")#返回指定鍵的值,如果鍵不存在,返回預設值“111”
dict.setdefault('111','111')#如果鍵存在,返回指定鍵的值,如果鍵不存在,將鍵值對寫入字典,並返回對應的值;跟get()類似
key in dict #判斷鍵值知否在dict中,如果存在返回True,不存在返回False
dict.update(dict2) #將字典dict2內容更新到dict中
dict.items() #python3中,返回的是迭代器,dict_items([('name', 'czz'), ('age', 32), ('class', 'first')]),使用list()獲取列表形式的鍵值對;python3中沒有iteritems()函式
dict.keys() #返回一個迭代器,dict_keys(['name', 'age', 'class']),使用list()可獲得字典的所有鍵
dict.values() #返回一個迭代器,dict_values(['czz', 32, 'first'])使用list()可獲得字典的所有值
dict.pop(”name“) #刪除給定鍵的對應的值
dict.popitem() #隨機返回並刪除字典中的一個鍵值對
dict.clear() #清空字典
字典的遍歷
dict={'name': 'czz', 'age': 32, 'class': 'first'}
for (key,value) in dict.items(): #字典遍歷鍵-值
print(key,value)
結果為:
name czz
age 32
class first
>>> for items in dict.items():#遍歷字典的項
... print (items)
...
('name', 'czz')
('age', 32)
('class', 'first')
>>> for key in dict: #遍歷字典的鍵
... print(key)
...
name
age
class
>>> for key in dict.keys(): #遍歷字典的鍵
... print(key)
...
name
age
class
>>> for value in dict.values(): #遍歷字典的值
... print(value)
...
czz
32
first
字串
hahah=
###sort和sorted
Python list內建sort()方法用來排序,也可以用python內建的全域性sorted()方法來對可迭代的序列排序生成新的序列。
sorted(iterable,key=None,reverse=False),返回新的列表,對所有可迭代的物件均有效
sort(key=None,reverse=False) 就地改變列表 reverse:True反序;False 正序
>>> a=[5,4,3,2,1]
>>> sorted(a)
[1, 2, 3, 4, 5] #產生一個新的排序列表
>>> print(a)
[5, 4, 3, 2, 1] #sorted()函式,沒有改變a的順序,說明sorted()不是修改的原list
>>> a.sort()
>>> print(a)
[1, 2, 3, 4, 5] #sort()函式修改了a的順序,說明是在原來列表上直接修改的順序
>>> sorted(a,reverse=True)#對列表降序排序
[5, 4, 3, 2, 1]
#當list中的元素是元組時,上面的方法就處理不了了,我們需要用到引數key,也就是關鍵詞,看下面這句命令,lambda是一個隱函式,是固定寫法,不要寫成別的單詞;x表示列表中的一個元素,在這裡,表示一個元組,x只是臨時起的一個名字,你可以使用任意的名字;x[0]表示元組裡的第一個元素,當然第二個元素就是x[1];
>>> a={('b',4),('a',0),('c',2),('d',3)}
>>> sorted(a,key=lambda x:x[1])
[('a', 0), ('c', 2), ('d', 3), ('b', 4)]
>>> sorted(a,key=lambda x:x[1],reverse=True
[('b', 4), ('d', 3), ('c', 2), ('a', 0)]