python list元素按關鍵字相加減

2021-06-05 20:27:41 字數 1113 閱讀 9940

python list中的元素按關鍵字相加或相減:

# coding=utf-8

# 兩個list按關鍵字相加或相減

def listadd(list1, list2, badd = true):

if badd == false:

list2 = [(k, -v) for (k, v) in list2]

d = {}

list0 = list1 + list2

for (k, v) in list0:

d.setdefault(k, 0) # 設定字典元素初始值

d[k] += v # 對字典中的元素按關鍵字相加

ret = list(d.items()) # 字典轉換成list

ret = sorted(ret) # 對list排序

return ret

if __name__ == '__main__':

a = [("s1", 10), ("s2", 13), ("s3", 25), ("s7", 30)]

b = [("s1", 22), ("s3", 16), ("s10", 8)]

print("a=", a)

print("b=", b)

ret1 = listadd(a, b) # ret1 = a + b

print("ret1=", ret1)

ret2 = listadd(a, b, false) # ret2 = a - b

print("ret2=", ret2)

執行:

e:\program\python>del.py

a= [('s1', 10), ('s2', 13), ('s3', 25), ('s7', 30)]

b= [('s1', 22), ('s3', 16), ('s10', 8)]

ret1= [('s1', 32), ('s10', 8), ('s2', 13), ('s3', 41), ('s7', 30)]

ret2= [('s1', -12), ('s10', -8), ('s2', 13), ('s3', 9), ('s7', 30)]

python list 刪除元素

以num list 1,2,2,3,4,5 為例。刪除乙個可以確定的元素,一共有三種方法。1.num list.remove 2 會刪除第乙個值為2的元素。2.num list.pop 1 會彈出索引為1的元素,若不傳引數,則彈出最後乙個元素。3.del num list 1 會刪除索引為1的元素。...

Python list列表4種刪除元素

1,del 根據索引值刪除元素 del 是 python 中的關鍵字,專門用來執行刪除操作,它不僅可以刪除整個列表,還可以刪除列表中的某些元素。我們已經在 python列表 中講解了如何刪除整個列表,所以本節只講解如何刪除列表元素。www.djznrobot.com del 可以刪除列表中的單個元素...

Python List 去除列表中重複的元素

比較容易記憶的是用內建的 setl1 b c d b c a a l2 list set l1 print l2 還有一種據說速度更快的,沒測試過兩者的速度差別 l1 b c d b c a a l2 fromkeys l1 keys print l2 這兩種都有個缺點,祛除重複元素後排序變了 a ...