如何逐行打印配对元素?

时间:2013-03-28 03:43:50

标签: python python-3.x

guessesRemaining=12
Summary=[]


code=['1','2','3','4']



while guessesRemaining > 0:
report=[]
guess=validateInput()
guessesRemaining -= 1
if guess[0] == code[0]:
    report.append("X")
if guess[1] == code[1]:
    report.append("X")
if guess[2] == code[2]:
    report.append("X")
if guess[3] == code[3]:
    report.append("X")

tempCode=list(code)
tempGuess=list(guess)

if tempGuess[0] in tempCode:
    report.append("O")
if tempGuess[1] in tempCode:
    report.append("O")
if tempGuess[2] in tempCode:
    report.append("O")
if tempGuess[3] in tempCode:
    report.append("O")

ListCount=report.count("X")
if ListCount > 0:
    del report[-ListCount:]

report2=report[0:4]
dash=["-","-","-","-"]
report2=report+dash
report3=report2[0:4]
report4="".join(report3)
guess2="".join(guess)
Summary+=[guess2,report4]

print(Summary)

validateInput()调用一个我没有在这里添加的函数。我试图找出如何在12次猜测的过程中一次一行地打印我的结果。通过三次猜测,我收到了......

['4715', 'OO--', '8457', 'O---', '4658', 'O---']

当我想收到......

['4715', 'OO--'] 
['8457', 'O---']
['4658', 'O---'] 

我试图以多种方式添加\ n但我无法弄清楚如何实现它。非常感谢任何和所有帮助。

3 个答案:

答案 0 :(得分:1)

  

我试图以多种方式添加\ n但我无法弄清楚如何实现它。

如果您首先正确构建数据,那将会有很大帮助。

Summary+=[guess2,report4]

这意味着“将[guess2,report4]中找到的每个项目单独附加到Summary”。

您的意思似乎是“将[guess2,report4]视为要附加到Summary的单个项目”。为此,您需要使用列表的append方法:

Summary.append([guess2, report4])

现在我们有了一个对列表,我们想要在一个单独的行上显示每个对,它会更容易:

for pair in Summary:
    print(pair)

答案 1 :(得分:0)

我认为你需要像

这样的东西
In [1]: l = ['4715', 'OO--', '8457', 'O---', '4658', 'O---']

In [2]: l1 = l[::2] # makes a list ['4715', '8457', '4658']

In [3]: l2 = l[1::2] # makes ['OO--', 'O---', 'O---']

In [4]: for i in zip(l1, l2):
   ...:     print i
   ...:
('4715', 'OO--')
('8457', 'O---')
('4658', 'O---')

答案 2 :(得分:0)

如果Summary仅打算打印而不在后续步骤中使用,

Summary+=[guess2,report4,'\n']

for i in Summary:
  print i,

另一种方法是使用How do you split a list into evenly sized chunks?

中的一个解决方案