【问题标题】:I have some problems about lists Python 2.7我对列表 Python 2.7 有一些问题
【发布时间】:2018-05-21 04:43:54
【问题描述】:

你能告诉我这里有什么问题吗?

由于某种原因,列表中没有添加任何内容。

textarea = raw_input()
n=0
txa = []
string =""

while(n < len(textarea)):
    if(textarea[n] != ' ' or textarea[n] != ','):

        string += textarea[n]
        n=n+1
        print (string)

    else:
        print "For some reason I'm never here."

        if(string == ' ' or string == ','):
            string = ""
        else:
            txa.append(string)
            string = ""
            n=n+1
print(txa)

对不起我的英语。

【问题讨论】:

  • 你想完成什么?理解这一点很重要,可以更好地帮助您。
  • 是的,对不起,我正在尝试从一个字符串中创建一个列表...比如:“Hello, goodbye” 然后,txa 会是:['Hello', 'goodbye' ] 很抱歉我的解释不好......
  • re.split() 有什么问题?
  • 好吧,我只是个坏蛋,我不知道,谢谢xD

标签: python string list append


【解决方案1】:

您需要将 if 语句中的 or 更改为 and。目前条件始终为真,因为 textarea[n] 不可能同时是 ' ' 和 ','。

您也可以使用正则表达式来拆分字符串,如here所见

【讨论】:

    【解决方案2】:
    >>> txt = "Hello, goodbye Fred"
    >>> txt.replace(',', ' ').split()
    ['Hello', 'goodbye', 'Fred']
    

    【讨论】:

    • 嘿,我正在尝试使用您的代码,我相信它可以完美运行,但我有点白痴,所以我无法让它工作。无论如何,我解决了:"textarea.split(", ")" 谢谢!
    【解决方案3】:

    首先,您需要将第一个if 中的or 更改为and

    其次,第一个else 中的if-else 块是多余的。尝试删除它,但保留第二个 else 块中的代码。

    第三,在while 之后添加一个append,以便存储在string 变量中的最后一个单词也进入txa 列表。

    你的代码差不多,看起来像这样 -

    while(n < len(textarea)):
        if(textarea[n] != ' ' and textarea[n] != ','):
            string += textarea[n]
            n=n+1
            print (string)
    
        else:
            print ("For some reason I'm never here.")
            txa.append(string)
            string = ""
            n=n+1
    
    txa.append(string)
    print(txa)
    

    提示:此外,您可以尝试使用内置函数为您进行拆分。

    txa = str(raw_input()).replace(',', ' ').split()
    

    这种单线效果很好。

    【讨论】:

    • 那一刻,我觉得自己像个白痴……Python真是不可思议,非常感谢!
    猜你喜欢
    • 2019-05-27
    • 2016-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-13
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多