猿问

循环遍历字符串中的每个第n个元素-python

如何遍历字符串中的每个第二个元素?


一种方法是(如果我想遍历第n个元素):


sample = "This is a string"

n = 3 # I want to iterate over every third element

i = 1

for x in sample:

    if i % n == 0:

        # do something with x

    else:

        # do something else with x

    i += 1

Thery是否有任何“ pythonic”方式做到这一点?(我很确定我的方法不好)


隔江千里
浏览 319回答 3
3回答

守着星空守着你

如果要在第n个步骤中执行某项操作,而在其他情况下要执行其他操作,则可以使用enumerate获取索引并使用模数:sample = "This is a string"n = 3 # I want to iterate over every third elementfor i,x in enumerate(sample):    if i % n == 0:        print("do something with x "+x)    else:        print("do something else with x "+x)请注意,它不是从1开始,而是从0开始。i如果需要其他内容,请添加一个偏移量。仅在第n个元素上进行迭代,最好的方法是itertools.islice避免创建仅在其上进行迭代的“硬”字符串:import itertoolsfor s in itertools.islice(sample,None,None,n):    print(s)结果:Tssrg
随时随地看视频慕课网APP

相关分类

Python
我要回答