Python 试图解决谷歌代码的旧问题以供练习
我正在研究一些老的Google代码阻塞问题,作为python的实践,因为我们学校不使用这种语言。是我正在研究的当前问题,它应该只是按单词颠倒字符串的顺序 这是我的密码:Python 试图解决谷歌代码的旧问题以供练习,python,Python,我正在研究一些老的Google代码阻塞问题,作为python的实践,因为我们学校不使用这种语言。是我正在研究的当前问题,它应该只是按单词颠倒字符串的顺序 这是我的密码: import sys f = open("B-small-practice.in", 'r') T = int(f.readline().strip()) array = [] for i in range(T): array.append(f.readline().strip().split(' '))
import sys
f = open("B-small-practice.in", 'r')
T = int(f.readline().strip())
array = []
for i in range(T):
array.append(f.readline().strip().split(' '))
for ar in array:
if len(ar) > 1:
count = len(ar) - 1
while count > -1:
print ar[count]
count -= 1
问题在于,不是打印,而是:
test a is this
我的代码打印:
test
a
is
this
请让我知道如何格式化我的循环,使其在一行中打印所有内容。另外,在从.txt文件读取输入并对其进行操作方面,我也有一些学习经验,因此,如果您对解决此类问题的不同方法有任何建议,我将不胜感激
print
默认情况下会添加换行符。如果你不想要这种行为,在结尾加一个逗号
while count > -1:
print ar[count],
count -= 1
请注意,反转列表的方法比您的方法简单得多,只需为一个片段指定-1步。(和将它连接成一个字符串)
有多种方法可以改变输出格式。以下是一些:
一种方法是:
这使得print
在末尾输出一个空格,而不是换行符
另一种方法是建立字符串,然后在循环后打印:
reversed_words = ''
for ar in array:
if len(ar) > 1:
count = len(ar) - 1
while count > -1:
reversed_words += ar[count] + ' '
count -= 1
print reversed_words
第三种方法是重新思考您的方法,并使用一些有用的内置Python函数和特性来简化您的解决方案:
for ar in array:
print ' '.join(ar[::-1])
(见和)
最后,您询问了如何读取文件。您已经做得很好了,但是在阅读完之后,您忘记了使用f.close()
。更好的是,使用Python 2.5+,:
这将在带
块的之后自动关闭文件描述符f
,即使在读取文件时出错。相关:
T = int(raw_input())
for t in range(T):
print "Case #%d:" % (t+1),
print ' '.join([w for w in raw_input().split(' ')][::-1])
for ar in array:
print ' '.join(ar[::-1])
array = list()
with open(filename) as f:
T = int(f.readline().strip())
for i in range(T):
array.append(f.readline().strip().split(' '))
# The rest of your code here
T = int(raw_input())
for t in range(T):
print "Case #%d:" % (t+1),
print ' '.join([w for w in raw_input().split(' ')][::-1])