Python – 字符串中出现的字符索引
有时,在使用Python字符串时,我们可能会遇到需要检查所有字符索引的问题。它们出现的位置。这种应用程序可以出现在许多领域。让我们讨论可以执行此任务的某些方式。
方法 #1:使用set() + regex + list comprehension + replace()
上述功能的组合可用于执行此任务。在此, set() 用于获取必须计算其频率的元素。相应地组装成字典的任务是使用正则表达式函数和列表理解来执行的。
# Python3 code to demonstrate working of
# Characters Index occurrences in String
# Using regex + set() + list comprehension + replace()
import re
# initializing string
test_str = "Gfg is best for geeks"
# printing original string
print("The original string is : " + test_str)
# Characters Index occurrences in String
# Using regex + set() + list comprehension + replace()
temp = set(test_str.replace(' ', ''))
res = {ele: [sub.start() for sub in re.finditer(ele, test_str)] for ele in temp}
# printing result
print("Characters frequency index dictionary : " + str(res))
输出 :
The original string is : Gfg is best for geeks
Characters frequency index dictionary : {'g': [2, 16], 'k': [19], 't': [10], 'G': [0], 'b': [7], 'i': [4], 'r': [14], 'f': [1, 12], 's': [5, 9, 20], 'o': [13], 'e': [8, 17, 18]}
方法 #2:使用循环 + enumerate()
这是可以执行此任务的另一种方式。在此我们创建一个字典,然后迭代字符串以将字符映射到它们各自的字符。
# Python3 code to demonstrate working of
# Characters Index occurrences in String
# Using loop + enumerate()
import re
# initializing string
test_str = "Gfg is best for geeks"
# printing original string
print("The original string is : " + test_str)
# Characters Index occurrences in String
# Using loop + enumerate()
res = {ele : [] for ele in test_str}
for idx, ele in enumerate(test_str):
res[ele].append(idx)
# printing result
print("Characters frequency index dictionary : " + str(res))
输出 :
The original string is : Gfg is best for geeks
Characters frequency index dictionary : {'g': [2, 16], 'k': [19], 't': [10], 'G': [0], 'b': [7], 'i': [4], 'r': [14], 'f': [1, 12], 's': [5, 9, 20], 'o': [13], 'e': [8, 17, 18]}