我试图解决的问题是:我有一个字符串,比如"abcabcdefdefjhi"
. 我想要的结果是这样的数字输出:
a: 0, 3
b: 1, 4
c: 2, 5
.
.
.
PS 该字符串是阿拉伯语,但仍然有助于了解如何为阿拉伯语和英语执行此操作。
在一行中:
c = "abcabcdefdefjhi"
print "\n".join(["%s: %s" %( e, ", ".join([ str(j) for j, e2 in enumerate(c) if e2==e]) ) for i, e in enumerate(sorted(set(c)))])
1) 不重复的列表:
sorted(set(c))
['a', 'b', 'c', 'd', 'e', 'f', 'h', 'i', 'j']
2) 职位列表(信函)
[ (i, e) for i, e in enumerate(sorted(set(c)))]
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), ... , (6, 'h'), (7, 'i '), (8, 'j')]
3)按字母分组职位:
[( e, [ j for j, e2 in enumerate(c) if e2==e] ) for i, e in enumerate(sorted(set(c)))]
[('a', [0, 3]), ('b', [1, 4]), ('c', [2, 5]), ..., ('i', [14]) , ('j', [12])]
4) 减少为一行
print "\n".join(["%s: %s" %( e, ", ".join([ str(j) for j, e2 in enumerate(c) if e2==e]) ) for i, e in enumerate(sorted(set(c)))])
一:0、3
乙:1、4
c: 2, 5
d: 6, 9
e: 7, 10
女:8、11
小时:13
我:14
j: 12
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句