Python 列表(List)
列表是最常用的Python資料型別;
列表中的資料項不需要具有相同的型別;
列表也叫做陣列,定義時使用[];
通過下標訪問列表中的元素,下標從 0 開始計數
列表的增、刪、改、查
增:
fruit = ['apple','orange','banana']
s = 'grape'
fruit.append(s) # 從末尾插入
print(fruit) # ['apple', 'orange', 'banana', 'grape']
刪:
fruit = ['apple','orange','banana','plum','fig','cherry','watermelon']
fruit.remove('banana') # 刪除指定元素
print(fruit) # ['apple', 'orange', 'plum', 'fig', 'cherry', 'watermelon'] del fruit[1] # 刪除指定位置的值
print(fruit) # ['apple', 'plum', 'fig', 'cherry', 'watermelon'] fruit.pop() # 不傳入下標,是刪除最後一個值;傳入下標,刪除的是指定位置的值
print(fruit) # ['apple', 'plum', 'fig', 'cherry'] fruit.clear() # 清空列表
print(fruit) # []
改:
fruit = ['apple','orange','banana','plum','fig','cherry','watermelon']
fruit[2] = 'strawberry' # 修改指定位置的值
print(fruit) # ['apple', 'orange', 'strawberry', 'plum', 'fig', 'cherry', 'watermelon']
查:
fruit = ['apple','orange','banana','plum','fig','cherry','watermelon']
print(fruit[0]) # 獲取第0個元素 apple
print(fruit[-1]) # -1 代表最後一個元素 watermelon
切片:
fruit = ['apple','orange','banana','plum','fig','cherry','watermelon']
print(fruit[1:3]) # 取下標1到下標 3 之間的值 ,顧頭不顧尾 ['orange', 'banana']
print(fruit[1:-1]) # 取下標1到-1 之間的值 顧頭不顧尾 ['orange', 'banana', 'plum', 'fig', 'cherry']
print(fruit[3:]) # 取從第二個下標開始的後面所有元素 ['plum', 'fig', 'cherry', 'watermelon']
print(fruit[::2]) #這個代表取所有的元素,然後每隔2個元素取一個 ['apple', 'banana', 'fig', 'watermelon']
Python 元組
元組和列表一樣,唯一不一樣的是,元組的值不能改變;元組的定義用小括號 ()
Python 集合
set是一個無序不重複元素集,集合的最好應用是去重。
a = [1,1,2,2,3,3]
a_set = set(a)
print(a_set) # {1, 2, 3}
字典:
字典的定義用大括號{ },每個值用 ”,“ 逗號隔開,key和value使用 ”:“ 冒號分隔
字典的特性:
字典是無序的,因為它沒有下標,用key來當索引,所以是無序的
字典的key'必須是唯一的,因為它是通過key來進行索引的,所以key不能重複,天生就去重
info = {
'name':'xiaoming',
'sex':'nan',
'age':20,
'id':1
}
print(info['name'])#通過key取值
print(info.get('addr')) # 通過get取值,取不到key時不會報錯,會返回 None
# print(info['addr'])#通過key取值 []中取值找不到key的時候會報錯KeyError: 'addr'
print(info.get('id'))#通過key取值
print(info.get('addr','beijing'))#通過key取值
增:
# 給字典新增一個值 === 列表中不可以這樣寫
info['addr'] = 'beijing'
print(info) # {'name': 'xiaoming', 'sex': 'nan', 'age': 20, 'id': 1, 'addr': 'beijing'} # 給字典新增一個值
info.setdefault('phone',13511111111)
print(info) # {'name': 'xiaoming', 'sex': 'nan', 'age': 20, 'id': 1, 'phone': 13511111111}
刪:del、pop()、popitem()、clear()
del info['id']
print(info) # {'name': 'xiaoming', 'sex': 'nan', 'age': 20} info.pop('name')
print(info) #{'sex': 'nan', 'age': 20, 'id': 1} info.popitem() # # 隨機刪除一個元素 info.clear() # 清空字典
查:
# 字典的查詢
infos = {'marry':[18,18612512981,'北京'],'amy':[20,18612512991,'山東'],'lily':[25,18612532981,'河南']}
print(infos.get('maryy'))#獲取marry的資訊,這種方式如果key不存在的話,會返回None。 None
print(infos['marry'])#獲取marry的資訊,這種方式如果key不存在的話,會報錯。 [18, 18612512981, '北京']
print('marry' in infos) #判斷marry是否在這個字典中,返回True或者False。 True
all = {
'car':{
'color':['red','yellow','black'],
'money':11111,
'pailaing':'2.5L',
'name':'A'
},
'car1':{
'color':['red','yellow','black'],
'money':11111,
'pailaing':'2.5L',
'country':'china'
},
'car2':{
'color':['red','yellow','black'],
'money':11111,
'pailaing':'2.5L'
}
}
在car1中新增顏色:orange
# car1中加一個顏色
all.get('car1').get('color').append('orange')
print(all) all.get('car').get('color')[1] = 'orange' # 將car中的yellow改成orange
# 返回字典裡所有的key
print(all.keys())# 返回字典裡的所有的key
print(all.values())# 獲取字典裡的所有的value
print(all.items())# 獲取字典的key和value,迴圈的時候用
字典的合併:
info = {
'name':'xiaoming',
'sex':'nan',
'age':20,
'id':1
}
info2 = {
'name':'hhh',
'sex':'nan'
}
# 把兩個字典合併到一起,如果有一樣的key,那麼更新value
info.update(info2)
print(info) # {'name': 'hhh', 'sex': 'nan', 'age': 20, 'id': 1}
字典的迴圈:
# 直接迴圈字典,迴圈的是字典的key,如果想迴圈的時候同時獲取到key和value, 那麼就要用 .items()方法
print(info.items()) # dict_items([('name', 'xiaoming'), ('sex', 'nan'), ('age', 20), ('id', 1)]) # 第一種方法
# items 方法的作用就是為了讓你迴圈的時候同時把key和value取到
for k,v in info.items():
print('%s is %s'%(k,v)) # 第二種方法
for k in info2:#這種方式效率比較高
print(k,info2[k])
字典中判斷key是否存在
Python3中直接用 in 來判斷 key 是否存在
print('name' in info2) # True
字典的內建方法:
# 字典的內建方法
print(info.values())#列印所有value。 dict_values(['xiaoming', 'nan', 20, 1])
print(info.keys())#列印所有的key。 dict_keys(['name', 'sex', 'age', 'id'])
print(info.setdefault('stu1','盛夏'))#如果這個key存在的話,那就不動它,不存在的話,新增一個。 盛夏
dic2 = {'stu1':'sriba','stu10':'baidu'}
info.update(dic2)#更新字典值,如果key存在的話,就更新,不存在的話就新增
print(info.items())#字典轉換成一個list 。 dict_items([('name', 'xiaoming'), ('sex', 'nan'), ('age', 20), ('id', 1), ('stu1', 'sriba'), ('stu10', 'baidu')])