【问题标题】:appending a line break to a list将换行符附加到列表
【发布时间】:2011-03-18 23:07:20
【问题描述】:

我希望我的程序从输入中生成 CSV。 (我正在计算特定输入出现的次数,然后我想在 Excel 中读取它。)这只是为了我自己的使用来帮助我输入数据,所以只有输出的形式很重要。在代码方面,我完全是个业余爱好者,所以请原谅我让程序循环的迂回方法。

SC= []
ender= 0
while ender == 0:
     Data = input('type in the letters:')
     if 'x' in Data:
          SC.append (1, )
     else: SC.append (0, )
     A = input('Done?:')    
     if 'done' in A:
         ender = 1
     else:quit
else:SC.append('/n')

print(SC)

这给了我类似(1, 0, 1, '/n')
我需要的是(1, 0, 1, /n)

我已经尝试过SC.append(//n) - 这不应该给我想要的“转义”/ 吗?- 它返回指向第一个 / 的语法错误
如果我使用SC.append(/n),我会得到指向/的相同语法错误
我也尝试过使用各种形式的原始字符串,但无济于事。

试图在列表末尾添加这些换行符的问题让我发疯了。我似乎无法让 python 将文字 /n 附加到列表中。任何帮助将非常感激。

【问题讨论】:

  • 谢谢!这使我免于随后的巨大头痛。

标签: escaping python-3.x append


【解决方案1】:

这肯定不是最好的方法。

我只是尝试对您的代码进行一些修改:

sc = []
while True:
    data = raw_input('type in the letters:')
    if 'x' in data:
        sc.append("1")
    else:
        sc.append("0")
    checkDone = raw_input('Done?:')
    if 'done' in checkDone:
        break
sc.append('\n')
print(sc)
scWithCommas = ",".join(sc)
print(scWithCommas)

可以进行一些改进:

  1. if 'x' in data 检查意味着如果您键入 xerox,则会附加一个 1。如果您键入peter,则会在列表中附加一个 0。它可以被改变,所以 xerox 附加 1,0,0,0,1 和 peter 附加 0,0,0,0,0

  2. 检查done 可以避免用户的第二次输入,而是使用第一次输入。

【讨论】:

    【解决方案2】:

    您错误地转义了换行符。是\n(注意你输入的是/n

    所以你想要的是SC.append('\n')

    【讨论】:

    • 我得到 [[1, 2, 3, '\n'] (显然 :) )。我怎样才能让它转到一个新行呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多