【问题标题】:python code to reverse an array without using the functionpython代码在不使用函数的情况下反转数组
【发布时间】:2021-07-28 05:38:07
【问题描述】:

我的任务是创建一个空数组并从用户那里获取输入,但我必须在没有函数的情况下以相反的顺序打印输入元素,这也在数组本身中。

x=int(input('how many cars do you have'))
a=[]
for i in range(x):
    car=(input('enter your car name'))
    a.append(car)
    
    print(a)
y=[]
for i in range(length(a)-1,-1,-1):
    y.append(a[i])
    
    print (y)

为什么我使用此代码得到重复的反向数组输出。谁能告诉我这有什么问题

【问题讨论】:

  • HiEd 的回答是正确的。你的print (y) 是缩进的,这意味着它在if 语句中,这意味着它每次迭代都会打印y。所以只要去掉print (y)前面的缩进/四个空格就行了。

标签: python arrays reverse


【解决方案1】:

在任何序列上使用切片来反转它:

print(list[::-1])

【讨论】:

    【解决方案2】:

    如果您在不使用任何内置函数的情况下从头开始寻找一种方法

    arr = [1,2,3,5,6,8]
    for i in range(len(arr)-1):
      arr.append(arr[-2-i])
      del(arr[-3-i])
    print(arr)
    # [8, 6, 5, 3, 2, 1]
    

    【讨论】:

      【解决方案3】:

      您想反转您的列表吗?

      a = ['car1', 'car2', 'car3']
      a.reverse()
      print(a)
      
      ['car3', 'car2', 'car1']
      

      【讨论】:

        【解决方案4】:

        你应该使用切片。例如,

        a = ['1','2','3']
        print(a[::-1])
        

        将打印['3','2','1']。我希望这对你有用。

        学习愉快!

        【讨论】:

          【解决方案5】:

          您的代码给了我正确的输出,除了 len() 用于计算列表的长度而不是 length()

          x=int(input('how many cars do you have')) 
          a=[] 
          for i in range(x): 
              car=(input('enter your car name')) 
              a.append(car)
          print(a)
          y=[] 
          for i in range(len(a)-1,-1,-1): 
              y.append(a[i])
          print(y)
          

          【讨论】:

          • 你有多少辆车3 输入你的车名swift ['swift'] 输入你的车名baleno ['swift', 'baleno'] 输入你的车名bolero ['swift', 'baleno', ' bolero'] ['bolero'] ['bolero', 'baleno'] ['bolero', 'baleno', 'swift']....我说的是倒数第三行和倒数第二行……是有可能只得到最后一行。
          • 我在答案中添加了输出截图。我只是得到 ['bolero', 'baleno', 'swift'] 作为输出。
          【解决方案6】:

          简单的自定义方式(不使用内置函数)反转列表:

          def rev_list(mylist):
              max_index = len(mylist) - 1
              return [ mylist[max_index - index] for index in range(len(mylist)) ]
          rev_list([1,2,3,4,5])
          
          #Outputs: [5,4,3,2,1]
          
          

          【讨论】:

            猜你喜欢
            • 2020-10-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-07-09
            • 2017-01-22
            • 1970-01-01
            相关资源
            最近更新 更多