2024-09-27 19:28:53 发布
网友
例如,如果输入ZZAZAAZ,则A的和将是14(因为它的位置是3,5,6),而Z的和将是14(1 + 2 + 4 + 7)。你知道吗
ZZAZAAZ
A
14
3,5,6
Z
(1 + 2 + 4 + 7)
我该怎么做?你知道吗
对于s中的所有元素,您可以这样做。而且,它会在字符串s的一次传递中找到每个元素的计数,因此它在s中的元素数是线性的。你知道吗
s
>>> s = 'ZZAZAAZ' >>> d = {} >>> for i, item in enumerate(s): ... d[item] = d.get(item, 0) + i + 1 >>> print d {'A': 14, 'Z': 14}
可以在sum中使用生成器表达式:
sum
>>> s='ZZAZAAZ' >>> sum(i for i,j in enumerate(s,1) if j=='A') 14
为了进一步使用Kasra's idea,如果您想要一个包含这些和的字典,您可以使用字典理解,并对唯一字符集进行迭代,如下所示:
>>> s = 'ZZAZAAZ' >>> {let:sum(a for a,b in enumerate(s,1) if b==let) for let in set(s)} {'Z': 14, 'A': 14}
对于
s
中的所有元素,您可以这样做。而且,它会在字符串s
的一次传递中找到每个元素的计数,因此它在s
中的元素数是线性的。你知道吗可以在
sum
中使用生成器表达式:为了进一步使用Kasra's idea,如果您想要一个包含这些和的字典,您可以使用字典理解,并对唯一字符集进行迭代,如下所示:
相关问题 更多 >
编程相关推荐