【问题标题】:How to split a list of Userinput [duplicate]如何拆分用户输入列表[重复]
【发布时间】:2018-12-30 14:20:25
【问题描述】:

这是我的代码:

list = []
text = input("Please give your text:")
text = str(text)
list.append(text)
list = str(list)

我想给出输入,例如:abcd。然后,我希望它把它分成 ["a","b","c","d"]

【问题讨论】:

  • text = input("Please give your text:") text = list(text) print(text)
  • 旁注:你不应该调用一个变量list它会隐藏一个内置关键字。

标签: python list


【解决方案1】:

Access the characters by Index。通过遍历字符串,您可以单独提取每个字符。变量i 将等于索引0text 的长度,您可以使用text[i] 通过索引访问字符元素。请参见下面的示例:

user_input_as_chars = []
text = input("Please give your text:")
for i in range(0, len(text)):
    user_input_as_chars.append(text[i])
user_input_as_chars = str(list)

另一种方法是traverse the Strings as an iterable:

for char in text:
    user_input_as_chars.append(char)

【讨论】:

  • 您的解决方案是过度编码。
  • 也许是这样,但对于 Python 的初学者来说,它可能更容易理解。 这不是代码高尔夫
  • 这也不是“让我们向新手教授反模式”。 a) 使用list 作为变量名。 b) 创建一个空列表,仅在以后可以通过对list() 的一次调用完全创建时对其进行扩展(如果您没有隐藏它)。 c) 在字符串上调用str()。 d) 通过索引而不是项迭代来迭代字符串。
  • 六行而不是单个l = list(input("Please give your text:"))...
  • @TimPietzcker 话虽如此,您仍然有上面的有效点。抱歉,我没有彻底检查 BOB 的代码。
【解决方案2】:

首先,避免将变量命名为list。然后,您可以通过说出list(text)str 拆分为列表。

lst = []
text = input("Please give your text:")
lst.extend(list(text))
print (lst)

输出

['a', 'b', 'c', 'd']

【讨论】:

  • 你为什么要创建一个空列表然后extending它而不是直接创建列表?
  • 我认为,OP 会在列表中添加更多项目 :)
【解决方案3】:

另一种选择:

text = input("Please give your text:")
l = list(text)
print (l)

【讨论】:

    【解决方案4】:
    text = input("Please give your text:")
    list.extend(list(text))
    print (list)
    

    【讨论】:

    • 这行不通。不要隐藏内置名称...
    猜你喜欢
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 2013-12-21
    • 1970-01-01
    相关资源
    最近更新 更多