文章目錄
- 類型是否可轉換
- 基本類型匯總
- 集合 set
- 【創建】
- 【添加元素】
- 【刪除】
- 【清空】
- 【差集】
- 【交集】
- 【并集】
- 【update 批量更新】
- 【set → numpy】
- 元組 tuple ()
- 【描述】
- 【優點】
- 【元組的創建】
- 【元組的插入】
- 【刪除元組】
- 字典 dict {}
- 【創建空列表】
- 【創建列表】
- 【字典的獲取】
- 【字典更新】
- 【dict → list】
- DefaultDict
- 【創建】
- 【遍歷】
- 【DefaultDict(list) → dict】
- 【DefaultDict(list) → DefaultDict(set)】
- 【DefaultDict(set) → DefaultDict(list)】
- 列表 list []
- 【創建空列表】
- 【創建和讀取】
- 【修改元素】
- 【末尾增加更多元素】
- 【截取list中的某一段】
- 【更改list中連續的元素】
- 【刪除list中某段元素】
- 【list → tuple】
- 【list → dict 】
類型是否可轉換
基本類型匯總
集合 set
【創建】
s = set() # 創建空集合
s = {"1", "2"}
【添加元素】
s.add(123)
【刪除】
# 移除元素 如果元素不存在,不會報錯 remove 如果元素不存在,會報錯
s.discard(32)
【清空】
s.clear()
【差集】
s1 = {32, 12, 34}
s2 = {12, 43, 23}
# 差集
# s1中存在,s2中不存在
print(s1.difference(s2))# 對稱差集
print(s1.symmetric_difference(s2))
【交集】
# 交集
print(s3.intersection(s4))# 判斷兩個集合有沒有交集,有返回true 無返回false
print(s3)
print(s4)
print(s3.isdisjoint(s4))
# False 怎么是false 這不是有交集嗎
【并集】
# 并集
print(s3.union(s4))
# {33, 22, 11, 44}
【update 批量更新】
li = [21, 4, 2, 312]
s3.update(li)
print(s3)
# {33, 2, 4, 11, 21, 22, 312}
【set → numpy】
>>> numpy.array(list(c))
array([1, 4, 6])
元組 tuple ()
【描述】
是不可變的對象
【優點】
(1)最大的一個特性就是使函數可以返回多個值。(python可以返回多個返回值就是通過它實現的)。
(2)tuple 放棄了對元素的增刪(內存結構設計上變的更精簡),換取的是性能上的提升:創建 tuple 比 list 要快,存儲空間比 list 占用更小。所以就出現了“能用 tuple 的地方就不用 list”的說法。
(3)由于 tuple 不可變,多線程并發的時候,tuple 是不需要加鎖的,不用擔心安全問題。
【元組的創建】
>>> temp=() # 創建一個空元素的元組
>>> temp=(1,) # 創建帶一個元素的元組,注意這里的逗號不可省略
>>> 8*(8) # 沒有逗號的情況,不是元組
64
>>> 8*(8,) # 有逗號的情況
(8, 8, 8, 8, 8, 8, 8, 8)
【元組的插入】
>>> temp = ("龍貓","泰迪","叮當貓")
>>> print(temp[:2] + ("小豬佩奇",)+temp[2:])
('龍貓', '泰迪', '小豬佩奇', '叮當貓')
【刪除元組】
>>> temp = ('龍貓', '泰迪', '小豬佩奇', '叮當貓')
>>> print(temp[:2] + temp[3:])
('龍貓', '泰迪', '叮當貓')
字典 dict {}
【創建空列表】
L={} # 方式一
L=dict() # 方式二
【創建列表】
dict = {'name': 'runoob', 'likes': 123, 'url': 'www.csdn.com'}
【字典的獲取】
tinydict = {'Name': 'Runoob', 'Age': 27}
print("Value : %s" % tinydict.get('Age'))
>>>
Value : 27
【字典更新】
car = { "brand": "Porsche", "model": "911", "year": 1963}
car.update({"color": "White"})
【dict → list】
d1 = {'en':'英語','cn':'中文','fr':'法語','jp':'日語'
}
list_values = [i for i in d1.values()]
list_keys= [ i for i in d1.keys()]
DefaultDict
與dict相比,DefaultDict擁有默認的key。
【創建】
參考網址1
/************************************ defaultdict(int)
***********************************/
dint = defaultdict(int)
// init value
for k in s:dint[k] += 1/************************************ defaultdict(list)
***********************************/
dlist=defaultdict(list)// init with s
s=[('yellow',1),('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
for k, v in s:dlist[k].append(v)
a=sorted(d.items())/************************************ defaultdict(set)
***********************************/
dset=defaultdict(set)
for k, v in s:dset[k].add(v)
print(d)
a=sorted(d.items())
【遍歷】
/************************************ defaultdict(set)
***********************************/
dset=defaultdict(set)
s=[('yellow',1),('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
for k, v in s:dset[k].add(v)
【DefaultDict(list) → dict】
>>> a
defaultdict(, {'1': ['b', 'a'], '3': ['b'], '2': ['a']})>>> dict(a)
{'1': ['b', 'a'], '3': ['b'], '2': ['a']}
【DefaultDict(list) → DefaultDict(set)】
obj=fmdl.SparseMatrix("/home/i9/experiment_ssl/cube_uniform100k.ply")
r1,r2=obj.GetAdjacentList()
d=defaultdict(set)
for i in range(len(r1)): for e in r2[i]:d[r1[i]].add(e)# print(type(r2[i])) # print(type(set(r2[i])))
print(d)
【DefaultDict(set) → DefaultDict(list)】
>>> values = defaultdict(Set)
>>> values['a'].add(1)
>>> defaultdict(list, ((k, list(v)) for k, v in values.items()))
defaultdict(<type 'list'>, {'a': [1]})
列表 list []
【創建空列表】
L=[] # 方式一
L=list() # 方式二
【創建和讀取】
fruits = ['apple', 'banana', 'pear', 'grapes', 'pineapple', 'watermelon']
print(fruits[2]) # 輸出pear
【修改元素】
fruits[2] = 'tomato'
【末尾增加更多元素】
fruits.append('eggplant')
【截取list中的某一段】
print(fruit[: 2])
【更改list中連續的元素】
fruits[:2] = ['a', 'b'] # 修改fruits的第1,2元素為a, b
【刪除list中某段元素】
fruits[:2] = [] #刪除前兩個元素
【list → tuple】
tuple(temp_list)
【list → dict 】
a= ['hello','world','1','2']
b=dict[zip(a[0::2],a[1::2]))
print(b)
>>>
{'1':'2','hello':'world'}