【问题标题】:Making functions to print first and last 10 elements of array制作函数以打印数组的第一个和最后 10 个元素
【发布时间】:2016-08-09 16:22:54
【问题描述】:

我找不到与打印从文本文件导入的数组的前 10 个和后 10 个元素相关的任何内容。这是我需要做的:

  • 添加一个函数将打印数组的前十个元素。
  • 添加一个函数来打印数组的最后十个元素。
  • 使用 len() 函数获取数组的大小。
  • 使用您的函数打印数组的前十个元素,然后打印最后十个元素。
  • 然后将数组从高到低排序。
  • 使用您的函数打印数组的前十个元素,然后打印排序数组的最后十个元素。

这是我的代码:忽略平均值和求和,因为程序的其他部分需要它。

def avgcalc(myList):
   intTotal = 0
   intCount = 0;
   intLenMyList = len(myList)

while(intCount <  intLenMyList):
   intTotal += myList[intCount]
   intCount += 1
return intTotal/intLenMyList

def sum1(myList):
  sum = 0
for element in myList:
    sum+=element
print (sum)

def ten(myList):
 for item in myList[:10]:
   print(item)


arr_intValues = []
myFile = open("FinalData.Data", "r")
print("File read complete")
for myLine in myFile:
    arr_intValues.append(int(myLine))



print (avgcalc(arr_intValues))
print (sum1(arr_intValues))
ten(myList)

【问题讨论】:

  • 请修正代码块中的缩进。
  • 你的问题是......?
  • 询问我如何打印文件中的前 10 个元素和后 10 个元素
  • 你被指派去做的事情和提问是不一样的。使用您当前的代码,我会得到SyntaxError: 'return' outside function。请参阅how to ask - 您的实际问题是什么;如果我们忽略avgcalsum1,那么您是在要求我们从头开始为您的目标编写代码?
  • 正如其他人指出的那样:1)请修复您的缩进。 2)向我们展示你得到的错误回溯 3)提出一个精简的可重现代码。

标签: python arrays list elements


【解决方案1】:

您需要定义myList,或者简单地将arr_intValues 传递给ten 的函数调用,即

 ten(arr_intValues)

打印前十个(如上所述)

for item in myList[:10]:
    print (item)

打印最后十个

for item in myList[-10:]:
    print (item)

【讨论】:

  • 我试过了,但它告诉我 myList 没有定义
  • 可能是因为myList 没有定义? = P
  • 查看我上面的编辑。正如 Adrien 所说,myList 没有定义。
  • 谢谢我这样做了,现在它会打印数组中的所有数字。
  • myList[10:] 不返回 myList 的前 10 个元素,它返回从索引 10 到列表其余部分的所有元素。
【解决方案2】:

将文件读入列表,每行一个元素:

with open("filename.txt") as f:
    lines = f.read().splitlines()

打印列表的前 10 个元素:

print("\n".join(lines[:10]))

打印列表的最后 10 个元素:

print("\n".join(lines[-10:])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 2013-01-14
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    相关资源
    最近更新 更多