【问题标题】:Adding elements to list after get 2 or more inputs on Python在 Python 上获得 2 个或更多输入后将元素添加到列表
【发布时间】:2021-07-20 05:25:02
【问题描述】:
def take_info(arr2,arr, number):

     arr[0] = number
     name = input()
     arr[1] = name
     grade = int(input())
     arr[2] = grade
     second_grade = int(input())
     arr[3] = second_grade
     arr2. append(arr)

def main():
     number = int(input())
     arr = [0] * 4
     count =1
     arr2 = // ? I dont know how to do it, range must be equal to count but how? Thats the point 1.
     while number>0:
           take_info(arr2,arr,number)
           count +=1
           number = int(input())

main()

take_info 函数必须返回while 'number >0',当number 为0 或小于0 时循环将结束。我想将这些值和名称添加到一个列表中,另一个列表的每个元素都应该是列表。谁能帮帮我?

【问题讨论】:

    标签: python arrays append element add


    【解决方案1】:

    Python 的刻板印象是“一切都是字典”。您的应用程序可能就是这种情况。

    一种组织你传入的数据的方法可能是一个字典,其中每个条目也是一个字典。

    def take_info():
        record = dict()
        record['name'] = input('Name: ')
        record['grade'] = int(input('Grade: '))
        record['second_grade'] = int(input('Second grade: '))
        return record
    
    def main():
        course_records = dict()
        count = 0
        number = int(input('ID number: '))
        while number > 0:
               course_records[number] = take_info()
               count +=1
               number = int(input('ID number: '))
    

    【讨论】:

      【解决方案2】:

      任何时候你重复某事,你可能想要使用循环。如果您使用循环来构建列表,您可能希望使用列表推导式。

      arr = [input() for _ in range(3)]
      

      鉴于您更新的问题,我可能会这样做:

      def take_info(number):
          return [number, input(), int(input()), int(input())]
      
      def main():
          return [take_info(number) for number in range(int(input()))]
      
      print(main())
      

      如果数字倒计时很重要,您可以修改range 调用,使其从 N-1 变为 0,而不是从 0 变为 N-1。

      【讨论】:

      • 但我想为每个输入写一些不同的东西,这就是为什么我不这样做
      • @Archie 也许您应该更新您的问题以反映您的问题的更好指定版本,包括一些困难细节的表示。
      【解决方案3】:

      或者,如果你想在一行中使用空格分隔的输入,你可以使用这个:

      my_list = list(map(str,input().split()))
      for i in range(len(my_list)):
         if (isinstance(my_list(i), int)):
            temp = int(my_list(i))
            my_list.pop(i)
            my_list.insert(i, temp)
      

      输入:汽车曲棍球板球

      my_list = ['汽车','曲棍球','板球']

      当然,这里的数据类型是一样的。您需要在附加 int、float 等情况后进行更改。

      【讨论】:

      • 我要写4个数据,有2个数据类型,一个是int,一个是string,
      • 你能检查编辑吗?我刚刚把它修好了,现在可能清楚了
      • 首先,您想将“arr2”定义为什么?其次,您是否尝试将“arr”初始化为固定大小的列表?您能否举例说明您希望输出的方式?
      猜你喜欢
      • 1970-01-01
      • 2015-03-07
      • 2020-08-19
      • 2016-02-29
      • 2020-01-24
      • 2020-07-25
      • 1970-01-01
      • 2020-10-15
      相关资源
      最近更新 更多