您可以将字符串中的字符添加到列表中吗?

Can you add characters from a string to a list?

我想知道是否可以使用一个字符串,例如str(input()) 并将其拆分为单独的 char,然后将它们添加到 list。我正在尝试制作一个简单的脚本(类似于刽子手游戏),一开始我是这样写的:

x=input('Choose word: ').lower()
letters=[]
letters.append(list(x))
print(letters)

但是此代码将整个 list 附加到 list 而不是单个 chars

编辑:这输出 [['o', 'u', 't', 'p', 'u', 't']] 意味着整个列表作为一个项目附加,但我希望它输出 ['o', 'u', 't', 'p', 'u', 't'],如何让它附加单个字符而不是整个列表

this outputs [['o', 'u', 't', 'p', 'u', 't']] meaning that the whole list got appended as one item, but i want this to output ['o', 'u', 't', 'p', 'u', 't']

根据您的评论,您可以使用:

x = [*input('Choose word: ').lower()]
print(x)
# ['p', 'y', 't', 'h', 'o', 'n']

Demo

您只是将字符列表包装在另一个列表中。

试试这个单线:

print(list(x))

如果要删除一个字符:

letters = list(x)
letters.remove('o')
print(letters)

使用扩展而不是追加函数。

#Extend
x=input('Choose word: ').lower()
letters=[]
letters.extend(list(x))
print(letters)

# ['p', 'y', 't', 'h', 'o', 'n']

要从列表中删除一个字符并在删除后将位置保留为空白,请在列表中使用替换:

y=input("Choose a letter to remove: ").lower()
removed=[s.replace(y,'') for s in letters]
print(removed)

#['p', '', 't', 'h', 'o', 'n']

我希望这对您有所帮助,除非它与您想要的不同。然后让我知道。否则,编码愉快!

您不需要创建一个空列表,然后用单独的字母填充它。只需直接为用户输入应用 list() 函数即可创建它:

letters = list(input('Choose word: ').lower())
print(letters)

要从其他用户输入中添加字母,请使用与 .extend() 方法相同的方法:

letters.extend(input('Choose word: ').lower())        # No need to use list() here

一个简单的衬垫:

x = input().lower().split()
print(x)

在这里我们接受输入,然后我们将其转换为小写,然后使用 split 函数将字符串拆分为空格,您可以将字符串拆分为您想要的任何字符串,只需提供您想要的字符串split on 作为 split 函数中的参数,例如:

x = input().lower().split(',')
print(x)

这将在“,”处拆分,因此您可以以 csv 格式提供输入

您可以使用 + 运算符(最好是增强赋值语句的形式,即 +=,用于将列表扩展为可迭代对象。

这里不需要使用list()函数,因为字符串是可迭代的:

letters = []
letters += input('Choose word: ').lower()
print(letters)