【发布时间】:2021-01-24 14:27:02
【问题描述】:
我正在寻找一种方法来自动化该过程,我只在列表值的非常特定位置添加具有某些值的元素。我知道这听起来很复杂,但我试图在这个简单的例子中更好地解释自己: 我有所有这些索引:
["0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"]
我想将它们在 x 位置具有 0 或 1 并且在 y 位置具有 0 或 1 的所有索引相加。在这种情况下,我想将所有计数相加,即它们在索引中的位置 1(从右侧)为 0,在位置 0(从右侧)为 1
"01": counts["0001"] + counts["0101"] + counts["1001"] + counts["1101"]
为了更容易理解,在这种情况下,我将所有计数相加,即它们在索引中的位置 1(从右起)为 1,在索引中的位置 0 为 0。
"10": counts["0010"] + counts["0110"] + counts["1010"] + counts["1110"]
我可以在 Python 中找到自动化来执行此操作吗?
编辑: 我会尝试更具体:
counts = {'0001': 0.0001220703125, '0010': 0.000244140625, '0100': 0.0003662109375, '0101': 0.245849609375, '0110': 0.2486572265625, '0111': 0.000244140625, '1000': 0.0009765625, '1001': 0.2508544921875, '1010': 0.252197265625, '1101': 0.00048828125, '0000': 0.0, '0011': 0.0, '1011': 0.0, '1100': 0.0, '1110': 0.0, '1111': 0.0}
例如,我需要获取它们中间有 00 的所有索引(位置 1 和 2)。所以我需要选择:'0001', '1000', '1001', '0000' 其中包含位置 1 中的 0 和位置 2 中的 0。我想对所有这些值求和。 '1101' 不好,因为依次包含位置 0 中的 1、位置 1 中的 0、位置 2 中的 1 和位置 3 中的 1。
我只知道我想要的值(它们是 2,可以取值 0 或 1)和它们的位置(0 或 1 或 2,或 3)。
希望我清楚
【问题讨论】:
-
sum (k.endswith("01") for k in yourlist)?对于其他条件sum (k[2]=="1" and k[0]=="0" for k in yourlist)- 你对你所拥有的任何条件的真实值求和。真 == 1 所以总和 == 数量
标签: python list indexing sum find