无法访问raw_input()数据 - 在Interviewstreet上学习Python

时间:2012-07-28 04:17:58

标签: python raw-input

在过去的几个月里,我在Matlab工作后试图转向Python。这可能是一个简单的问题,但我还没有在搜索StackOverflow或Google时找到它。

我正在研究的InterviewStreet问题非常简单。这是一个插入排序问题,检查需要在列表中切换不同数量的次数。它们以下列格式给我们一个raw_input():

2

5

1 1 1 2 2

5

2 1 3 1 2

第一行是我需要排序的列表数量,所有后续偶数行是我需要排序的列表中的数字数量,以下奇数行是需要排序的实际列表。

我一开始就被困住了。我做的最好的是

  

STDOUT = raw_input()

     

打印STDOUT

由于某种原因,它只给出了所有测试用例中的第一个整数(对于这个,它是2)。

这对您来说可能很明显,但如何使用raw_input()访问其余数字?

谢谢!

P.S。请不要帮助我解决剩下的问题,我实际上想尝试自己解决它:)

2 个答案:

答案 0 :(得分:0)

您需要为每一行拨打raw_input()一次,如下所示:

N = int(raw_input())    # first line is number of lists

for i in xrange(N):
    num_in_list = int(raw_input())  # read the number of items in list N
    list = raw_input().split()      # read list N

    print num_in_list, list         # print list N

应输出以下内容:

  

5 ['1','1','1','2','2']   5 ['2','1','3','1','2']

答案 1 :(得分:0)

我正在处理同样的问题,这是raw_input()的解决方案:

num_testcases = int(raw_input())
assert 1 <= num_testcases <= 5
for testcase in range(num_testcases):
    num_elems = int(raw_input())
    assert 1 <= num_elems <= 100000
    elems = map(int, raw_input().split())
    assert all(map(lambda x: 1 <= x <= 1000000, elems))
    insertion_sort(elems)

希望它会对你有所帮助。