Python 列表中元素的概率
我的数据Python 列表中元素的概率,python,Python,我的数据 List=[[12,1,6],[12,1,6],15],[12,2,6],[12,2,6],18],[12,3,6],[12,3,6],24]] 我有一个包含 number of rows having a transition from 12,1,6 to 12,1,6 is 15 number of rows having a transition from 12,2,6 to 12,2,6 is 18 number of rows having a transition fro
List=[[12,1,6],[12,1,6],15],[12,2,6],[12,2,6],18],[12,3,6],[12,3,6],24]]
我有一个包含
number of rows having a transition from 12,1,6 to 12,1,6 is 15
number of rows having a transition from 12,2,6 to 12,2,6 is 18
number of rows having a transition from 12,3,6 to 12,3,6 is 24
作为列表
此数据不是生成的。我的数据中还有许多其他可能的组合。上面所说的就是示例
我希望我的输出是一个具有此转换概率的列表
比如说
P1 = the probability of transition from 12,1,6 to 12,1,6
= 15/total length of rows/elements in the list.(In this case it is 3)
P2 = the probability of transition from 12,2,6 to 12,2,6
= 18/total length of rows in the list
我的输出需要
List=[[12,1,6],[12,1,6],15,P1=(15/3)*[100],[12,2,6],[12,2,6],18,P2],[12,3,6],[12,3,6],[24,P3]]
我已经尝试了很多,如果我得到建议会很有帮助
def排序(sub_li):
sub_li.sort(reverse=True,key=lambda x:x[1])
返回sub_li
打印(排序())
列表
在18
之后有一个额外的]
,因此我在编写这段代码之前删除了它,这段代码假定所有行的长度都相同
List = [[[12,1,6],[12,1,6],15],[[12,2,6],[12,2,6],18],[[12,3,6],[12,3,6],24]]
for i, value in enumerate(List):
value.append(("P%d=%f" % ((i + 1), value[2] / len(value[0]) * 100)))
print(List)
输出:
[[[12, 1, 6], [12, 1, 6], 15, 'P1=500.000000'], [[12, 2, 6], [12, 2, 6], 18, 'P2=600.000000'], [[12, 3, 6], [12, 3, 6], 24, 'P3=800.000000']]
List
在18
之后有一个额外的]
,因此我在编写这段代码之前删除了它,这段代码假定所有行的长度都相同
List = [[[12,1,6],[12,1,6],15],[[12,2,6],[12,2,6],18],[[12,3,6],[12,3,6],24]]
for i, value in enumerate(List):
value.append(("P%d=%f" % ((i + 1), value[2] / len(value[0]) * 100)))
print(List)
输出:
[[[12, 1, 6], [12, 1, 6], 15, 'P1=500.000000'], [[12, 2, 6], [12, 2, 6], 18, 'P2=600.000000'], [[12, 3, 6], [12, 3, 6], 24, 'P3=800.000000']]
概率必须介于0和1之间,包括0%和100%。15/3或(15/3)*100违反了这一点。这是一个样本数据。我写了一些文字来澄清逻辑。作为旁白,变量和函数名应该在
小写字母后面加下划线。[12,1,6]
与[12,6,1]
相同吗?也就是说,子列表的顺序重要吗?如果不是,请使用计数器…概率必须介于0和1之间,包括0%和100%。15/3或(15/3)*100违反了这一点。这是一个样本数据。我写了一些文字来澄清逻辑。作为旁白,变量和函数名应该在小写字母后面加下划线。[12,1,6]
与[12,6,1]
相同吗?也就是说,子列表的顺序重要吗?如果没有,请使用计数器。。。