【问题标题】:python basics:how to take the complete input first and get the complete output later?python基础:如何先获取完整的输入,然后再获取完整的输出?
【发布时间】:2016-11-11 20:38:23
【问题描述】:

好的,所以我刚开始学习 python,我正在解决 codechef 问题 我写了以下解决方案 this问题:

testcase = input()
remain = []
chef = []
assistant = []
for _ in range(testcase):
    comp,rem = map(int,raw_input().split())
 for _ in range(1,comp+1):
    remain.append(_)
    temp = map(int,raw_input().split())
    remain = [x for x in remain if x not in temp]
  for i in range(len(remain)):
    if i%2==0:
        chef.append(remain[i])
    else:   
        assistant.append(remain[i])
  sarr = [str(a) for a in chef]
  darr = [str(a) for a in assistant]        
  print " ".join(sarr)
  print " ".join(darr)  
  remain[0:] = []
  chef[0:] = []
  assistant[0:] = []

现在程序正在做它应该做的事情,但我想在得到输出之前获取所有输入,如this 问题示例所示

【问题讨论】:

  • 与其倾倒整个代码,不如将其提炼成基本要素,尤其是在您可以使用玩具示例的情况下。
  • 另外,这更像是一个风格问题,但我会避免在 map 之类的函数构造中使用 raw_input(或者,例如,列表推导式)。
  • 您是否正在寻找类似于我在回答中显示的内容?

标签: python python-2.7


【解决方案1】:

将所有输入读入某种集合(列表将是最直接的选择),然后从该集合中获取它们进行处理。

【讨论】:

    【解决方案2】:

    做这样的事情,然后处理存储的输入:

    comp=[]
    rem=[]
    indexes = []
    
    for _ in range(testcase):
        rem_t,comp_t = map(int,raw_input().split())
        rem.append(rem_t)
        comp.append(comp_t)
    
        for _ in range(1,comp[i]+1):
          indexes.append(map(int,raw_input().split()))
    

    现在对于每个测试用例 i,您需要在循环内定义 chefassitant 列表并操作存储在 comp[i], rem[i] and indexes[i] 中的输入:

    for i in range(testcase):
        # define chef and assistant lists.
        # use comp[i], rem[i] and indexes[i].
        # print the the content of chef and assistant array.
    

    【讨论】:

    • 我确实尝试存储输出,但问题是如果我将所有输出存储在循环外的单个列表中,我无法区分具有不同数量的单个测试用例的输出工作。
    • @virenkanjani,根据您所指的问题陈述,每个测试用例有 2 行,一个具有 n 和 m 的值,第二个具有 m 元素。因此,对于每个测试用例,您都有 n,m 和一个列表。这只是测试用例 i 的 comp[i]、rem[i] 和 index[i](索引是列表的列表)。够清楚吗?
    猜你喜欢
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 2019-12-22
    • 2014-11-27
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    • 2015-01-26
    相关资源
    最近更新 更多