例如x=[['北京', 2], ['北京', 1], ['天津', 1], ['福建', 1]]
因為有兩個值是北京,所以最后這個陣列(也可以是新的陣列)應該是:
[['北京', 2,1], ['天津', 1], ['福建', 1]]
uj5u.com熱心網友回復:
簡單思路就是整到字典里再轉成串列。
x=[['北京', 2], ['北京', 1], ['天津', 1], ['福建', 1]]
x_dict = {}
for xi in x:
if x_dict.has_key(xi[0]):
x_temp = x_dict[xi[0]]
x_temp.append(xi[1])
x_dict[xi[0]] = x_temp
else:
x_dict[xi[0]] = [xi[1]]
x_list = []
for i in x_dict:
x_item = [i]
x_item.extend(x_dict[i])
x_list.append(x_item)
print(x_list)
uj5u.com熱心網友回復:
x = [['北京', 2], ['北京', 1], ['天津', 1], ['福建', 1]]
dict_x = {}
list_x = []
for i in x:
if i[0] in dict_x.keys():
dict_x[i[0]].append(i[1])
else:
dict_x[i[0]] = [i[0],i[1]]
print(dict_x)
for j in dict_x.keys():
list_x.append(dict_x[j])
print(list_x)
uj5u.com熱心網友回復:
lists = [1,1,2,3,5,6]# 轉為集合(集合可以去重)~_
sets = set(lists)
# 再轉回陣列~_
listss = list(sets)
print(listss)
uj5u.com熱心網友回復:
dic = {}
l=[['北京', 2], ['北京', 1], ['天津', 1], ['福建', 1], ['北京', 1]]
def func_map(item):
key = item[0]
val = item[1]
if key in dic:
dic[key] = str(dic[key]) + "," +str(val)
else:
dic[key] = val
print([list(i) for i in zip(dic.keys(),dic.values())])
uj5u.com熱心網友回復:
l=[['北京', 2], ['北京', 1], ['天津', 1], ['福建', 1], ['北京', 1]]
dic = dict(l)
tmp_dict = {}
for key in dic:
tmp_dict[key] =[]
for a,b in l:
tmp_dict[a].append(b)
lst = []
for k,v in tmp_dict.items():
tmp_list = [k]
tmp_list.extend(v)
lst.append(tmp_list)
print(lst)
uj5u.com熱心網友回復:
3樓正解,直接轉set,再轉回來。uj5u.com熱心網友回復:
def amp_merge_value():# 對相同頻率的鍵值對應的波幅進行歸一疊加
x_dict = {}
for xi in fraq_amplitude:
if x_dict.__contains__(xi[0]):
x_dict[xi[0]][0] += xi[1]
else:
x_dict[xi[0]] = [xi[1]]
x_list = []
for i in x_dict:
x_item = [i]
x_item.extend(x_dict[i])
x_list.append(x_item)
return x_list
uj5u.com熱心網友回復:
方法之一:先按照地名sort,再遍歷一次,即可。
請看代碼
uj5u.com熱心網友回復:
方法之二:用字典
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/136245.html
下一篇:如何測驗資料?
