@Patrick 确实给了你一个答案,但是你说那是错误的,我假设在删除列表中的第一个元素(步骤 3)并将 1 添加到索引之前,索引的结果应该是索引,因为结果似乎是我们通常计算的索引,而不是在 Python(或大多数编程语言,请参阅下面的指南)中计算的索引。
我还看到结果中没有“This”这个词,所以我假设您还希望跳过所有以大写开头并且与列表的第一个元素相同的词,所以“The”这个词。
1. 使用列表作为结果
test_string = """The Persian League is the largest sport event dedicated, \
to the deprived, areas of Iran. The Persian League promotes, peace and friendship.
This video was captured by one of our heroes, who wishes peace.
"""
bs = [',', '.']
result_2 = []
# ========== < REMOVE COMMAS AND DOTS > ========= #
for punct in bs:
if punct in test_string:
test_string = test_string.replace(punct, '')
# ========== < STORE FIRST ELEMENT AT INDEX 0 > ========= #
reshte = test_string.split()
first_element = reshte[0]
# ========== < COUNTS ELEMENTS IN LIST > ========= #
results = []
for idx, f in enumerate(reshte):
if first_element[0] == f[0]: # NOTE: we don't remove the first element but only skipping it all in once
continue
if f[0].isupper():
results.append((idx, f))
for idx, value in results:
print(f'{idx+1}:{value}')
# 2:Persian
# 3:League
# 15:Iran
# 17:Persian
# 18:League
2. 使用字典
results = dict()
for idx, f in enumerate(reshte):
if first_element[0] == f[0]: # NOTE: we don't remove the first element
continue
if f[0].isupper():
results[idx] = f
for key, value in results.items():
print(f'{key+1}:{value}')
# 2:Persian
# 3:League
# 15:Iran
# 17:Persian
# 18:League
print(results)
# {1: 'Persian', 2: 'League', 14: 'Iran', 16: 'Persian', 17: 'League'}
3.计算列表的重复
# ========== < FIND UNIQUE ELEMENT IN LIST > ========= #
unique_string = {string for string in reshte if string[0].isupper()}
results = []
# ========== < COUNT ELEMENTS > ========= #
for element in unique_string:
if first_element[0] == element[0]:
continue
element_count = reshte.count(element)
results.append((element_count, element))
for idx, value in results:
print(f'{idx}:{value}')
# 1: Iran
# 2: League
# 2: Persian
4.使用计数器
from collections import Counter
counted = Counter(reshte)
for element, count in counted.items():
if element[0] == first_element[0]:
continue
elif element[0].isupper():
print(f'{count}:{element}')
# 2:Persian
# 2:League
# 1:Iran
指南和文件
堆栈溢出相关问题