python - 在 python 中改变字符串

标签 python string python-3.x mutable

我的大脑无法理解为什么这不起作用。我不是很有经验,只是想练习循环。

我正在尝试创建一个函数,它接受一个字符串(目前是一个单词)并随机将字母大写。使用这段代码,python 抛出一个类型错误:列表索引必须是整数或切片,而不是字符串

这是我所拥有的:

import random

list = []

def hippycase(string):
    for letter in string:
        list.append(letter)

    for index in list:
        if random.randint(1,2) == 1:
            list[index] = list[index].upper()
        else:
            list[index] = list[index].lower()
    return list


print(hippycase("pineapple"))

有什么想法或提示吗?谢谢

编辑:由于有人认为在以下链接中这已被标记为重复项,因此我将尝试清除不同之处: Accessing the index in Python 'for' loops 我并没有试图主动寻找索引,我只是在练习 for 循环,它巧合地顺序地通过 iterable 的索引。我还认为,如果一个菜鸟编码员正在搜索这可能会更有帮助。

最佳答案

这是你的代码的一个稍微改进的版本

def hippycase(string):
    charlist = []
    for char in string:
        if random.randint(1,2) == 1:
            charlist.append(char.upper())
        else:
            charlist.append(char.lower())
    return charlist

请注意,在此版本中,我们只查看字符串中的字符,我们不关心索引 - 这有助于减少混淆。

如果我把它写成实际上“hippycase”一个字符串,我可能会返回“”.join(charlist),所以调用函数会返回一个字符串(这可能是他们所期望的)

此外,覆盖 list 保留字也是不好的做法。

关于python - 在 python 中改变字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43989654/

相关文章:

python - 网页抓取无法通过 Selenium/BS4 获取完整的源代码数据

c# - 字符串和 Enumerable.Count

java - 有没有办法在存储字符串时扫描文件并忽略 int 变量?

Python 税收计算器 - 算法无法正常工作

python - 无法在 Python 3.5 中子类化多处理队列

python - 在 matplotlib 中扩展线段

python - 如何使用Python套接字连接到同一网络上的另一台计算机

c++ - 使用 str[i] -'0' 的目的是什么,其中 str 是一个字符串?

python - 用 beautifulsoup 抓取 html id

python - numpy.random.multinomial 错误输出?