【发布时间】:2022-11-23 19:16:04
【问题描述】:
我有一个关键字列表:
list1 = ['key(1)', 'key(2)' ........, 'key(x)']
另一个二维列表:
list2 = [['key1','str(11)','value(11)'],['key1','str(12)','value(12)'].....,['key(1)','str(1n)','value(1n)'],['key2','str(21)','value(21)'],...,['key(2)','str(2n)','value(2n)'],........., ['key(n)','str(n1)','value(n1)'],...,['key(n)','str(nn)','value(nn)']]
我想做的是计算列表 1 中包含在列表 2 的元素中的每个关键字的值的中值,输出将如下所示:
output_list=[['key(1)',median(value(11),...value(1n)], ['key(2)',median(value(21),...value(2n)],.....,['key(x)',median(value(x1),...value(xn)]]
我从一个 if 语句开始:
import statistics
for i in range(0,len(list1)):
for j in range (0,len(list2)):
if list1[i] in list2[j]:
print(list1[i],statistics.median(int(list2[j][2])))
我正在尝试打印结果,但我得到的是“int”对象不可迭代
【问题讨论】:
-
你的名单有多大?当您在列表中按顺序查找键时,使用字典而不是列表会更有效也更容易。这通常是字典的查找工作。 O(n) -> O(1)。
标签: python python-3.x list