如題:
a = [
'a,1',
'bb,3,22',
'c,3,4',
'b,5'
]b = [
'a,2',
'bb,1',
'd,2',
'a,3'
]
現要求合併a和b到c,輸出c為:
['a,1,2,3', 'bb,3,22,1', 'c,3,4', 'b,5', 'd,2']
即a中'a', 'bb', 'c', 'b'等作為參考,同b一樣合併為乙個陣列。
當a和b包含的元素很多時,要注意效率。能否以o(n)的時間複雜度來實現呢?可以想一想再看答案。
。。。不排版了,一把嗦。
from collections import defaultdict
list_c =
dic = defaultdict(str)
for i in list_a, list_b:
for val in i:
first_index = val.index(',')
key = val[:first_index]
value = val[first_index + 1:]
if dic[key] == '':
dic[key] = value
continue
dic[key] = dic[key] + ',' + value
for k, v in dic.items():
return list_c
連線兩個字串
include include void main char lianjie char a 30 char b 30 原型 extern char strcat char dest,char src 用法 include 功能 把src所指字串新增到dest結尾處 覆蓋dest結尾處的 0 並新增 ...
交換兩個字串
交換兩個字串,原來的字串分別為 學生 和 好 字串輸出顯示為 學生好 交換後輸出顯示為 好學生 include using namespace std int main char c1 5 學生 char c2 3 好 char m,n,t m c1 n c2 cout 交換前 m n n t co...
兩個字串相乘
先附上一張演算法圖 解釋 123 456 首先拿出1和456相乘,儲存到陣列1 2 3 的位置,然後拿出2和456相乘2 3 4的位置,依次類推,直到第乙個字串遍歷完 然後將他們相加,依次存到陣列中 實現如下 int j 0 int resindex 0 for int i 0 i然後再考慮進製,需...