3 回答
TA贡献1801条经验 获得超16个赞
返回格式化字符串的最短理解:
["{}:{}".format(*x) for x in enumerate(lst) if x[1].istitle()]
TA贡献1830条经验 获得超3个赞
这是因为列表index()返回列表中第一次出现的索引。因此,无论Persian'列表中有多少个,都只会获取第一个'Persian'的索引。
使用enumerate遍历列表跟踪指数的,我会建议一个字典创建,所以你可以进一步使用它:
lst = ['Persian', 'League', 'is', 'the', 'largest', 'sport', 'event', 'dedicated', 'to', 'the', 'deprived', 'areas', 'of', 'Iran', 'Persian', 'League', 'promotes', 'peace', 'and', 'friendship', 'video', 'was', 'captured', 'by', 'one', 'of', 'our', 'heroes', 'who', 'wishes', 'peace']
output = {i: x for i, x in enumerate(lst) if x.istitle()}
# {0: 'Persian', 1: 'League', 13: 'Iran', 14: 'Persian', 15: 'League'}
TA贡献1797条经验 获得超6个赞
为此,您必须使用列表理解:
[(i, word) for i, word in enumerate(l) if word.istitle()]
>> [(0, 'Persian'), (1, 'League'), (13, 'Iran'), (14, 'Persian'), (15, 'League')]
该函数istitle()检查单词的第一个字母是否以大写开头。
或者你可以使用:
for i, word in enumerate(l):
if word.istitle():
print(i,': ', word)
0 : Persian
1 : League
13 : Iran
14 : Persian
15 : League
添加回答
举报