我的列表看起来像
我尝试了以下方法:
my_list = [['A', 6, 7], ['A', 4, 8], ['B', 9, 3], ['C', 1, 1]], ['B', 10, 7]]
我想要按照内部列表中的第一列分组,找到每个内部列表中其他两列的平均值。
[['A', 5, 7.5], ['B', 9.5, 5], ['C', 1, 1]]
['A', 5, 7.5]
来自于 ['A', (6+4)/2 ,(7+8)/2]
我不介意得到一个字典或其他什么东西,但我更希望它保持为一个列表。我尝试了以下方法:
my_list1 = [i[0] for i in my_list]
my_list2 = [i[1:] for i in my_list]
new_dict = {k: v for k, v in zip(my_list1, my_list2)}
将原始列表拆分,使第一列成为键,第二列和第三列成为值,并将其转换为字典,这样可以给出总数,但问题是
我想要保留小数位,它会四舍五入并给我整数而不是浮点值
my_list1 = ['A', 'A', 'B', 'C', 'B']
my_list2 = [[6, 7], [4, 8], [9, 3], [1, 1], [10, 7]]
new_dict= {'A': [5, 8], 'B': [10, 5], 'C': [1, 1]}
理想情况下,我希望得到 [['A', 5, 7.5], ['B', 9.5, 5], ['C', 1, 1]]
(如果是字典也无妨)
Converted the second and third columns to float maybe using a for loop thinking, then it will give me a float when I convert it to a dictionary.. But no difference, IT ROUNDS UP and gives a A WHOLE NUMBER.
for i in range(0, len(my_list)): for j in range(1, len(my_list[i])): my_list[i][j].astype(float) dict = {} for l2 in my_list: dict[l2[0]] = l2[1:]
我需要保留小数位的原因是第二列和第三列是x和y坐标。
总的目标是在每个内部列表中按第一列分组找到其他两列的平均值,并尽可能多地保留小数位数。
my_list
是一个元组(tuple),而不是列表(list)... - juanpa.arrivillaga['A', (6+4)/2.0 ,(7+8)/2.0]
的代码。 - T4rk1n