您可以将字符串中的字符添加到列表中吗?
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
而不是单个 char
s
编辑:这输出 [['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']
您只是将字符列表包装在另一个列表中。
试试这个单线:
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)
我想知道是否可以使用一个字符串,例如str(input())
并将其拆分为单独的 char
,然后将它们添加到 list
。我正在尝试制作一个简单的脚本(类似于刽子手游戏),一开始我是这样写的:
x=input('Choose word: ').lower()
letters=[]
letters.append(list(x))
print(letters)
但是此代码将整个 list
附加到 list
而不是单个 char
s
编辑:这输出 [['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']
您只是将字符列表包装在另一个列表中。
试试这个单线:
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)