Python-数据结构(二)
繼上篇
三、列表
append:通過append可以向列表添加元素,并且默認添加在列表末尾。
示例:
namesList = ['tom', 'jerry', 'jhon']print("----添加之前,列表中的元素----")print(namesList)print("----添加之后,列表中的元素----")namesList.append("james")print(namesList)<br>運行結果:----添加之前,列表中的元素----['tom', 'jerry', 'jhon']----添加之后,列表中的元素----['tom', 'jerry', 'jhon', 'james']extend:通過extend可以將另一個集合中的元素逐一添加到列表中
示例:
print("----使用append添加----")a = ['a', 'b', 'c']b = ['1', '2', '3']a.append(b)print(a)print("----使用extend添加----")a = ['a', 'b', 'c']b = ['1', '2', '3']a.extend(b)print(a)運行結果:----使用append添加----['a', 'b', 'c', ['1', '2', '3']]----使用extend添加----['a', 'b', 'c', '1', '2', '3']insert:insert(index, object) 在指定位置index前插入元素object
示例:
1
2
3
4
5
6
a = [‘a’, ‘b’, ‘c’]
a.insert(1, “haha”)
print(a)
運行結果:
[‘a’, ‘haha’, ‘b’, ‘c’]
2. 刪除元素("刪"del, pop, remove,clear)
del:根據下標進行刪除
示例:
movieName = ['綠巨人', '鋼鐵俠', '超人', '雷神', '洛基']print('------刪除之前------')print(movieName)print('------刪除之后------')del movieName[2]print(movieName)運行結果:------刪除之前------['綠巨人', '鋼鐵俠', '超人', '雷神', '洛基']------刪除之后------['綠巨人', '鋼鐵俠', '雷神', '洛基']pop:刪除最后一個元素
示例:
movieName = ['綠巨人', '鋼鐵俠', '超人', '雷神', '洛基']print('------刪除之前------')print(movieName)print('------刪除之后------')movieName.pop() # 也可以傳入下標作為參數,刪除該下標的元素print(movieName)運行結果:------刪除之前------['綠巨人', '鋼鐵俠', '超人', '雷神', '洛基']------刪除之后------['綠巨人', '鋼鐵俠', '超人', '雷神']remove:根據元素的值進行刪除
示例:
movieName = ['綠巨人', '鋼鐵俠', '超人', '雷神', '洛基']print('------刪除之前------')print(movieName)print('------刪除之后------')movieName.remove('超人')print(movieName)運行結果:------刪除之前------['綠巨人', '鋼鐵俠', '超人', '雷神', '洛基']------刪除之后------['綠巨人', '鋼鐵俠', '雷神', '洛基']clear:清空所有元素
mlist = [1, 2, 3, 4, 5, 6, 7]mlist.clear()print(mlist)運行結果:[]3. 修改元素(“改”)
修改元素的時候,要通過下標來確定要修改的是哪個元素,然后對其重新賦值
示例:
movieName = ['綠巨人', '鋼鐵俠', '超人', '雷神', '洛基']print('------修改之前------')print(movieName)print('------修改之后------')movieName[2] = '美國隊長'print(movieName)運行結果:------修改之前------['綠巨人', '鋼鐵俠', '超人', '雷神', '洛基']------修改之后------['綠巨人', '鋼鐵俠', '美國隊長', '雷神', '洛基']in, not in
示例:
name_list = ['tom', 'jerry', 'alice', 'james']print('tom' in name_list)print('tom' not in name_list)運行結果:TrueFalseindex, count示例:
name_list = ['tom', 'jerry', 'alice', 'james', 'jerry']print(name_list.index('jerry', 1, 3))print(name_list.index('jerry', 4, 6))print(name_list.count('jerry'))運行結果:1425. 排序(sort, reverse)
sort方法是將list按特定順序重新排列,默認為由小到大,參數reverse=True可改為倒序,由大到小。
reverse方法是將list逆置。
示例:
四、元組
python的元組與列表類似,不同之處在于元組的元素不能修改。元組使用小括號,列表使用方括號。
tuple = (1, 2, 3, 4)
五、字典
<strong>字典的創建</strong>person = {"name": "sb", 'age': 18}或person = dict(name='sb', age=18)person = dict({"name": "sb", 'age': 18})person = dict((['name','sb'],['age',18])){}.fromkeys(seq,100) #不指定100默認為None注意:>>> dic={}.fromkeys(['k1','k2'],[])>>> dic{'k1': [], 'k2': []}>>> dic['k1'].append(1)>>> dic{'k1': [1], 'k2': [1]}變量info為字典類型:
info = {‘name’:‘孫悟空’, ‘id’:100, ‘sex’:‘男’, ‘address’:‘花果山’}
說明:
字典和列表一樣,也能夠存儲多個數據
列表中找某個元素時,是根據下標進行的。字典中找某個元素時,是根據’名字’(就是冒號:前面的那個值,例如上面代碼中的’name’、‘id’、‘sex’)
字典的每個元素由2部分組成,鍵:值。例如 ‘name’:‘孫悟空’ ,'name’為鍵,'孫悟空’為值
2. 修改元素
字典的每個元素中的數據是可以修改的,只要通過key找到,即可修改
3. 添加元素
如果在使用變量名[‘鍵’] = 數據時,這個“鍵”在字典中,不存在,那么就會新增這個元素
4. 刪除元素
del刪除指定的元素
clear清空整個字典
info = {'name': '孫悟空', 'id': 100, 'sex': '男', 'address': '花果山'}print('----清空前----')print(info)print('----清空后----')info.clear()print(info)運行結果:----清空前----{'name': '孫悟空', 'id': 100, 'sex': '男', 'address': '花果山'}----清空后----{}pop刪除指定元素,若刪除的元素不存在,可以指定返回值
dic = {'k1': 'v1','k2': 'v2'}v = dic.pop('k1')print(dic, v)# 運行結果{'k2': 'v2'} v1dic = {'k1': 'v1','k2': 'v2'}v = dic.pop('k111', 1)print(dic, v)# 運行結果{'k1': 'v1', 'k2': 'v2'} 1keys
返回一個包含字典所有KEY的列表
info = {‘name’: ‘孫悟空’, ‘id’: 100, ‘sex’: ‘男’, ‘address’: ‘花果山’}
info.keys()
dict_keys([‘name’, ‘id’, ‘sex’, ‘address’])
values
返回一個包含字典所有value的列表
info = {‘name’: ‘孫悟空’, ‘id’: 100, ‘sex’: ‘男’, ‘address’: ‘花果山’}
info.values()
dict_values([‘孫悟空’, 100, ‘男’, ‘花果山’])
返回一個包含所有(鍵,值)元組的列表
info = {‘name’: ‘孫悟空’, ‘address’: ‘花果山’}
info.items()
dict_items([(‘name’, ‘孫悟空’), (‘address’, ‘花果山’)])
python3去除了has _key替換為in
如果key在字典中,返回True,否則返回False
info = {‘name’: ‘孫悟空’, ‘address’: ‘花果山’}
‘name’ in info
True
‘age’ in info
False
看看python2中的has_key,當然python2中in也可以使用
info = {‘name’: ‘孫悟空’, ‘address’: ‘花果山’}
‘name’ in info
True
info.has_key(‘name’)
True
info.has_key(‘age’)
False
六、集合
1. 定義
定義:由不同元素組成的集合,集合中是一組無序排列的可hash值,可以作為字典的key
特點:
不同元素組成
無序
每個元素必須是不可變類型
2. 集合的創建
{1,2,3,1}
或
定義可變集合set
>>> set_test=set(‘hello’)
>>> set_test
{‘l’, ‘o’, ‘e’, ‘h’}
改為不可變集合frozenset
>>> f_set_test=frozenset(set_test)
>>> f_set_test
frozenset({‘l’, ‘e’, ‘h’, ‘o’})
3. 常用操作
add 添加元素
pop 隨機刪除一個元素
s = {'b', 123, 2, 3, 'a'}s.pop()print(s)#運行結果{3, 'b', 'a', 123}remove 刪除指定元素,刪除不存在的元素時會報錯
s = {'b', 123, 2, 3, 'a'}s.remove('a')print(s)# 運行結果{2, 3, 'b', 123}discard 刪除指定元素,刪除不存在的元素時不會報錯
intersection 或 & 交集
s = {'b', 123, 2, 3, 'a'}b = {'a', 2, 5, 123}sb = s.intersection(b)print(sb)print(s & b)# 運行結果{2, 123, 'a'}<br>{2, 123, 'a'}union 或 | 并集
s = {'b', 123, 2, 3, 'a'}b = {'a', 2, 5, 123}sb = s.union(b)print(sb)print(s | b)# 運行結果{2, 3, 'a', 5, 'b', 123}{2, 3, 'a', 5, 'b', 123}difference 或 - 差集
s = {'b', 123, 2, 3, 'a'}b = {'a', 2, 5, 123}sb = s - bbs = b - sprint(sb, bs)# 運行結果{3, 'b'} {5}symmetric_difference 或 ^ 交叉補集(兩個集合不共有的部分)
s = {'b', 123, 2, 3, 'a'}b = {'a', 2, 5, 123}sb = s.symmetric_difference(b)print(sb)# 運行結果{3, 5, 'b'}difference_update 返回兩集合的差集
s = {'b', 123, 2, 3, 'a'}b = {'a', 2, 5, 123}s.difference_update(b) # 將兩集合的差集返回給sprint(s)# 運行結果{3, 'b'}isdisjoint 如果兩集合的交集為空集,返回True
s = {'b', 2, 3, }b = {'a', 5, 123}v = s.isdisjoint(b)print(v)# 運行結果Trueissubset 如果s1是s2的子集,返回True
s1 = {1, 2}s2 = {1, 2, 3}v = s1.issubset(s2)print(v)#運行結果Trueissuperset 如果s1包含s2父集,返回True
s1 = {1, 2}s2 = {1, 2, 3}v = s1.issuperset(s2)print(v)1# 運行結果 <br>Falseupdate 更新
s1 = {1, 2}s2 = {1, 2, 3}s1.update(s2)print(s1)# 運行結果{1,2,3}總結
以上是生活随笔為你收集整理的Python-数据结构(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python-数据结构(一)
- 下一篇: Python-字符串格式化