列表理解中的多个索引

我需要编写一个函数来返回具有偶数索引的字符串列表。我在找到一种方法来检查列表理解中的索引时遇到问题,我尝试了 index() 但它给了我第一个实例的索引,并且列表不是由唯一字符组成的。


这是我到目前为止得到的:


def even_chars(st):

print(st)

if len(st) < 2 or len(st) > 100:

    return 'invalid string'

else:

    return [s for s in st if st.index(s) % 2 != 0]

我正在考虑在 index() 中放置另一个参数,因为它可以从给定的索引开始搜索,但是没有办法为每个 s 递增它。有什么提示吗?也许我缺少一些内置功能?


白衣非少年
浏览 104回答 2
2回答

精慕HU

您可以为此使用 enumerate,本质上返回当前迭代的编号:[s&nbsp;for&nbsp;i,&nbsp;s&nbsp;in&nbsp;enumerate(st)&nbsp;if&nbsp;i&nbsp;%&nbsp;2&nbsp;==&nbsp;0]

紫衣仙女

尝试这个:#The original stringst = "this is a string"# Converted into a listst_list = list(st)# Print all the elements at even positionsprint(st_list[1::2])这样你就不需要函数了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python