dict(Object) & list(Array)

{} & []

dict

python中的Object!

賦值
result = {}
result['a'] = 'A'
print(result) # {'a': 'A'}
result['a'] = 'AA'
print(result) # {'a': 'AA'}
判斷key存在
result = { 'a':'A' }
print(result.__contains__('a')) # True
print(result.__contains__('b')) # False
dict ro string
d = {'a': 'A', 'b': 'B'}
result = str(d)
> {'a': 'A', 'b': 'B'}
取值
d.get(key)
# 在 key(键)不在字典中时,可以返回默认值 None 或者设置的默认值。

d[key]
# 在 key(键)不在字典中时,会触发 KeyError 异常。

list

python中的Array!

add
#Adds a single element to the end of the array.
#將單個元素添加到數組的末尾。
append(x)

#將列表、數組或其他可迭代對象添加到數組的末尾。
#Adds a list, array, or other iterable to the end of array.
extend(iterable)

#在給定的數組索引之前插入一個元素。
#Inserts an element before the given index of the array.
insert(i, x)

foreach

l = ['A']

for i in range(len(l)): #foreach with index
  print(l[i]) # A

for s in l: #foreach content
  print(s) # A
組OR語句的好方法
or_query_list = ['OR條件1', 'OR條件2']
for i in range(len(or_query_list)):
    or_query_list[i] = f'fieldName={or_query_list[i]}'
where_str = ' OR '.join(or_query_list)

轉為list

任何長得像list的東西可以嘗試這樣轉出...

list(likeListObject)

EX
list(dict.keys()) #這裡的dict.keys沒有index屬性不方便取值,轉成list就可以了

合併

  • 子項合併

  • 按序合併

    • 兩個list的項目必須是相同數量。

  • 直接合併

三種合併EX
list_a = [1, 2, 3]
list_b = [4, 5, 6]

#子項合併
list_a + list_b
> [1, 2, 3, 4, 5, 6]

#按序合併
list(zip(list_a, list_b))
> [(1, 4), (2, 5), (3, 6)]
# zip可將兩個list按每項目合併。

#直接合併
[list_a, list_b]
> [[1, 2, 3], [4, 5, 6]]

參考: https://pythonviz.com/basic/3-ways-to-combine-list-in-python/

分組切割

大list切割成小list。

將一個list中的元素,分組成「每個列表中最多包含20個元素」的小列表。

適用於大量數值要批次處理的狀況。

EX
# 創建一個長度為50,包含數字1到50的列表
my_list = [i for i in range(1, 51)]

# 一個列表生成式(list comprehension)。
result = [my_list[i:i+20] for i in range(0, len(my_list), 20)] 
'''拆解說明
使用 for 和 range(),將原始列表 my_list 按照「每20個元素一組」的方式分組成多個小列表,並將這些小列表存儲到新的列表 result 中。

range(0, len(list), 20)
=>生成一個「從0開始、到my_list長度結束、步長為20」的數字序列。
PS:假如列表中的元素個數不足20個,那麼最後一組的元素數量就會小於20個。

list[i:i+20]
=>在每次循環中複製一個小列表,並包含原始列表 my_list 中「從第i個元素開始,長度為20(或不到20個)」的子列表切片。
每次迴圈i的值增加20,直到所有的元素都被分組。最後生成的新列表result,就是一個被分組的列表,包含了分組后的所有子列表
'''

'''python result
[
  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], 
  [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40], 
  [41, 42, 43, 44, 45, 46, 47, 48, 49, 50]
]
'''

判斷是否為

判斷是否為{}
isinstance(o, dict)
判斷是否為[]
isinstance(a, list)

for each

for object each
for k in o:
for array index
for i in a:
for range of number
for i in range(num):

Last updated