跳过python for循环中的第一个值

2024-04-20 06:43:36 发布

您现在位置:Python中文网/ 问答频道 /正文

e = 'NewCamelCaseWord'
new_word = []

def snake_case_formatter(c, sep='-'):
    for i in list(c):
        if i.isupper():
            new_word.append(sep)
            i = i.lower()
        new_word.append(i)
    else:
        if new_word[0] == sep:
            del new_word[0]
        word = ''.join(new_word)
        return word 

嗨,这是我的代码,将camelcase函数名更改为snake case函数名。创建此函数时,我通过将字符串更改为列表,然后在大写字母之前向空间中添加空格,但这也意味着在单词开头之前有一个空格。这意味着当我使用破折号作为分隔符将字符串连接在一起时,函数名的开头会有一个破折号。我通过删除else函数中的第一个字符来修复这个问题,但是。如果是大写字母,我怎么能使循环跳过第一个字母?我尝试使用这样的continue:

^{pr2}$

但是它只是弄乱了代码。所以我认为这与我的缩进有关系,但我不确定我应该如何格式化它。

编辑:我想知道如何使用continue,以便跳过在字符串中的第一个字母之前添加空格,而不是在之后删除它


Tags: 函数字符串代码newif字母大写字母else
2条回答

请检查以下代码以获得预期的解决方案:

e = 'CamelCaseWord'
new_word = []

range(len(e))
def snake_case_formatter(c, sep='-'):
    for i in range(len(e)):
        if i==0 and e[i].isupper():
            continue
        elif e[i].isupper()==True:
            new_word.append('-' + e[i].lower())
        else: 
            new_word.append(e[i])
    print(''.join(new_word))

snake_case_formatter(e)  

for i in list(c):中,变量{}是列表的元素,而不是其索引。它不再包含当前索引的信息。在

i[0]试图访问i的第一个元素,这可能没有太大意义。在

Python提供了函数enumerate,用于迭代元素及其索引:

for index, i in enumerate(list(c))

那么index是循环中的当前索引,可以与0进行比较,例如与if index==0:。在

相关问题 更多 >