friends_list = ['longzeluola','canglaoshi','qiaobenai','nick']lis = list('abcd')
方法:
#list之索引取值name_list={'nick','jason','tank','sean'}name_list[0]='nick handsome'#name_list[1000]='tank handsome' #報錯print(f"name_list[0]:{name_list[0]}")
name_list[0]:{name_list[0]}
2.切片
#list之切片name_list=['nick','jason','tank','jick']print(name_list[0:3:2]) ----->'nick','tank'
3.長度len
#list之長度name_list=['nick','jason','tank','jick']print(len(name_list)) ------>4
4.append追加值
# list之追加值name_list = ['nick', 'jason', 'tank', 'sean']name_list.append('tank handsome' )print(name_list) ------->['nick', 'jason', 'tank', 'jick', 'tank handsome']
5.成員運算in和not in
# list之成員運算in和not inname_list = ['nick', 'jason', 'tank', 'sean']print('tank handsome' in name_list ) ----->Fslseprint('nick handsome' not in name_list) ------>true
6.for循環
# list之循環name_list = ['nick', 'jason', 'tank', 'sean']for name in name_list: print(name) nickjasontankjick
7.刪除del
# list之刪除name_list = ['nick', 'jason', 'tank', 'sean']del name_list[2]print(name_list) ---->['nick', 'jason', 'jick']
需要掌握
# list之count()name_list = ['nick', 'jason', 'tank', 'sean']print(name_list.count('tank')) ------>1
2.remove 如果刪除對象不存在則報錯,按照指定的元素刪除
# list之remove()name_list = ['nick', 'jason', 'tank', 'sean']print(name_list.remove('tank')) ------> Noneprint(name_list) ----->['nick', 'jason', 'sean']
3.reverse 反轉列表
# list之reverse()name_list = ['nick', 'jason', 'tank', 'sean']name_list.reverse()print(name_list) ------>['sean', 'tank', 'jason', 'nick']
4.pop 默認刪除最後一個值,刪除指定索引的值
# list之pop(),pop()默認刪除最後一個元素name_list = ['nick', 'jason', 'tank', 'sean']print(name_list.pop(1)) ----->jasonprint(name_list) ----->['nick', 'tank', 'sean']
5.insert 在索引前面加入一個值
# list之insert()name_list = ['nick', 'jason', 'tank', 'sean']name_list.insert(1,'handsome')print(name_list) --->['nick', 'handsome', 'jason', 'tank', 'sean']
6.sort 排序列表
# list之sort(),使用sort列表的元素必須是同類型的name_list = ['nick', 'jason', 'tank', 'sean']name_list.sort()print(name_list) --->['jason', 'nick', 'sean', 'tank']name_list.sort(reverse=True) print(name_list) ------->['tank', 'sean', 'nick', 'jason']
7.index 獲取指定元素的索引,但是只會獲取第一次
# list之index()name_list = ['nick', 'jason', 'tank', 'sean']print(name_list.index('nick')) ---->0
8.copy 複製
# list之copy()name_list = ['nick', 'jason', 'tank', 'sean']print(name_list.copy()) --->['nick', 'jason', 'tank', 'sean']
9.extend 擴展,把extend裡的列表的元素添加到原列表中
# list之extend()name_list = ['nick', 'jason', 'tank', 'sean']name_list2=['nick handsome' ]name_list.extend(name_list2)print(name_list) -->['nick', 'jason', 'tank', 'sean', 'nick handsome']
10.clear 清除列表/清空列表
# list之clear()name_list = ['nick', 'jason', 'tank', 'sean']name_list.clear()print(name_list) ------->[]
hobby_list = ['read', 'run', 'girl']print(f'first:{id(hobby_list)}') --->4522187016hobby_list[2] = ''print(f'second:{id(hobby_list)}') ---->4522187016
friends_tuple = ('longzeluola','canglaoshi','qiaobenai','nick')tup = tuple('abcd')
nick_info_dict = {'name':'nick','height':180,'weight':140,'hobby_list':['read','run','music','fishing','programming','coding','debugging']}for k,v in nick_info_dict.items(): print(k,v)
name nick
height 180
weight 140
hobby_list ['read', 'run', 'music', 'fishing', 'programming', 'coding', 'debugging']
# dic之按key存取值dic = {'a': 1, 'b': 2}print(f"first dic['a']: {dic['a']}")dic['a'] = 3print(f"second dic['a']: {dic['a']}")
first dic['a']: 1
second dic['a']: 3
3.長度:
```print(len(dic))
4.鍵keys() / 值values()/ 鍵值對items()
# dic之鍵keys()、值values()、鍵值對items(),python2中取出的是列表(雞蛋);python3中取出的是元組(雞)dic = {'a': 1, 'b': 2}print(f"dic.keys(): {dic.keys()}")print(f"dic.values(): {dic.values()}")print(f"dic.items(): {dic.items()}")
dic.keys(): dict_keys(['a', 'b'])
dic.values(): dict_values([1, 2])
dic.items(): dict_items([('a', 1), ('b', 2)])
5.for循環
# dic之循環# dic是無序的,但是python3採用了底層優化算法,所以看起來是有序的,但是python2中的字典是無序dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}for k, v in dic.items(): # items可以換成keys()、values() print(k, v)
a 1
b 2
c 3
d 4
6.成員運算in 和 not
# dic之成員運算in和not indic = {'a': 1, 'b': 2}print(f"'a' in dic: {'a' in dic}")print(f"1 in dic: {1 in dic}")
'a' in dic: True
1 in dic: False
7.刪除del
# dic之刪除deldic = {'a': 1, 'b': 2}del dic['a']print(f"dic.get('a'): {dic.get('a')}")
dic.get('a'): None
8.需要掌握
1. fromkeys 來自鍵值,默認把給定列表內的元素取出來當成key,然後使用一個默認value新建一個字典
# dic之fromkeys()dic = dict.fromkeys(['name', 'age', 'sex'], None)print(f"dic: {dic}")
dic: {'name': None, 'age': None, 'sex': None}
2. setdefault 如果字典中有該key的話,則key對應的值不變:如果沒有,則增加 ```python # dic之setdefault(),有指定key不會改變值;無指定key則改變值 dic = {'a': 1, 'b': 2} print(f"dic.setdefault('a'): {dic.setdefault('a',3)}") print(f"dic: {dic}") print(f"dic.setdefault('c'): {dic.setdefault('c',3)}") print(f"dic: {dic}") ``` dic.setdefault('a'): 1 dic: {'a': 1, 'b': 2} dic.setdefault('c'): 3 dic: {'a': 1, 'b': 2, 'c': 3}3. get 如果鍵不存在,返回不會報錯,可以給默認值 ```python # dic之get() dic = {'a': 1, 'b': 2} print(f"dic.get('a'): {dic.get('a')}") print(f"dic.get('c'): {dic.get('c')}") ``` dic.get('a'): 1 dic.get('c'): None4. update 有就更新,沒有就添加 ```python # dic之update() dic1 = {'a': 1, 'b': 2} dic2 = {'c': 3} dic1.update(dic2) print(f"dic1: {dic1}") ``` dic1: {'a': 1, 'b': 2, 'c': 3}
s = set()s = {1,2,3,4,5,1}
方法:
# str之|併集pythoners = {'jason', 'nick', 'tank', 'sean'}linuxers = {'nick', 'egon', 'kevin'}print(f"pythoners|linuxers: {pythoners|linuxers}")print(f"pythoners.union(linuxers): {pythoners.union(linuxers)}")
# set之add()s = {1, 2, 'a'}s.add(3)print(s)
{1, 2, 3, 'a'}
2.difference_update
# str之difference_update()pythoners = {'jason', 'nick', 'tank', 'sean'}linuxers = {'nick', 'egon', 'kevin'}pythoners.difference_update(linuxers)print(f"pythoners.difference_update(linuxers): {pythoners}")
pythoners.difference_update(linuxers): {'tank', 'jason', 'sean'}
3.isdisjoint 是否不聯合
# set之isdisjoint(),集合沒有共同的部分返回True,否則返回Falsepythoners = {'jason', 'nick', 'tank', 'sean'}linuxers = {'nick', 'egon', 'kevin'}pythoners.isdisjoint(linuxers)print(f"pythoners.isdisjoint(linuxers): {pythoners.isdisjoint(linuxers)}")
pythoners.isdisjoint(linuxers): False
4.remove # 值不存在會報錯
# set之remove()s = {1, 2, 'a'}s.remove(1)print(s)
{2, 'a'}
5.discard # 放棄,刪除,不會報錯
# set之discard()s = {1, 2, 'a'}# s.remove(3) # 報錯s.discard(3)print(s)
{1, 2, 'a'}
4.多個值or一個值:多個值,且值為不可變類型
5.有序or無序:無序
6.可變or不可變:可變數據類型
一個值多個值整型/浮點型/字符串列表/元祖/字典/集合/
有序無序字符串/列表/元祖字典/集合
可變不可變列表/字典/集合整型/浮點型/字符串
l1 = ['a','b','c',['d','e','f']]l2 = l1l1.append('g')print(l1) # ['a','b','c',['d','e','f'],'g']print(l2) # ['a','b','c',['d','e','f'],'g']
如果l2是l1的拷貝對象,則l1內部的任何數據類型的元素變化,則l2內部的元素也會跟著改變,因為可變類型值變id不變
import copyl1 = ['a','b','c',['d','e','f']]l2 = copy.copy(l1)l1.append('g')print(l1) # ['a','b','c',['d','e','f'],'g']print(l2) # ['a','b','c',['d','e','f']]l1[3].append('g')print(l1) # ['a','b','c',['d','e','f','g'],'g']print(l2) # ['a','b','c',['d','e','f','g']]
如果l2是l1的淺拷貝對象,則l1內的不可變元素發生了改變,l2不變;如果l1內的可變元素發生了改變,則l2會跟著改變
import copyl1 = ['a','b','c',['d','e','f']]l2 = copy.deepcopy(l1)l1.append('g')print(l1) # ['a','b','c',['d','e','f'],'g']print(l2) # ['a','b','c',['d','e','f']]l1[3].append('g')print(l1) # ['a','b','c',['d','e','f','g'],'g']print(l2) # ['a','b','c',['d','e','f']]
如果l2是l1的深拷貝對象,則l1內的不可變元素發生了改變,l2不變;如果l1內的可變元素發生了改變,l2也不會變,即l2永遠不會因為l1的變化而變化!