迭代字符串并在字符串中返回“x”个字符

时间:2017-05-21 18:37:06

标签: python loops

我试图遍历字符串并返回已在函数中声明的字符串长度。

它将接收两个参数,x和chars。该函数将返回一个字符串,该字符串由从索引0到索引x-1的字符值组成。

我想收到的回报是

print rangeLoopStringParam1("bobsyouruncle", 5)
# -> "bobsy"
print rangeLoopStringParam1("supercalifragilisticexpialidoshus", 8)
# -> "supercal"

这是我到目前为止的代码,但我觉得我没有走得太远。任何人都可以指导我解决这个问题吗?

def rangeLoopStringParam1(chars, x):
    for i in range(0, x, len(chars)):
        chars += chars
    return chars

4 个答案:

答案 0 :(得分:3)

list slicing怎么了?

def stringRange(chars, x):
    return chars[:x]

这里发生的事情是我们将字符串视为字符列表,我们告诉python给出列表中的第一个x元素(字符串的第一个x个字符)。请记住,列表切片遵循语法list[start:end](在我们的示例中,start隐含为0)。这意味着,由于列表从0开始,列表切片确实返回索引从0(包括)到x(非包含)的所有元素的列表。

有关更详细的说明,请参阅this关于列表切片如何工作的Greg Hewgill的精彩答案。

答案 1 :(得分:2)

另外请注意,你可以做lambda函数。

yourFunction = lambda string, num: string[:num]

print(yourFunction("bobsyouruncle", 5))

返回

  

bobsy

供参考:

Python3 Docs

Python course Doc

答案 2 :(得分:1)

Python具有一些非常强大的内置功能。其中一个(切片)完全符合您的要求。

def rangeLoopStringParam1(chars, x):
    return chars[:x]

答案 3 :(得分:0)

您可以使用以下方法直接拆分字符串:

new_string = string [:n],其中n是你想要的长度。