最小和最大代码无法找到正确的数字

时间:2017-12-04 23:45:18

标签: python-3.x

我有一个包含YouTube视频信息的电子表格。我正在尝试创建一个程序,可以找到视频的平均长度以及最短和最长的视频。我想我找到了平均长度,但我无法获得最短和最长的视频。

我使用for循环从工作表中获取信息,然后将信息分成几部分。我不认为我做错了,因为我得到了正确的数字。我假设它与我的最大值和最小值有关,但我不知道还能做什么。

如何获取最大值和最小值以找到正确的数字?

def main():
  my_file = open('animalVideos.csv', 'r')

  list_of_lines = my_file.read().splitlines()

  sum = 0
  counter = 0

  for i in range(1, len(list_of_lines)):
    one_line = list_of_lines[i]
    line_items = one_line.split(',')
    sum += float(line_items[2])
    counter += 1
    longest = max(line_items[2])
    shortest = min(line_items[2])

  average = sum / counter 
  print(average, shortest, longest)

main()

1 个答案:

答案 0 :(得分:0)

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from tkinter import *
from tkinter import ttk

root = Tk()

tree = ttk.Treeview(root, columns=('one'))
idx = tree.insert(parent='', index=END, values=('AAA'))
tree.insert(parent=idx, index=END, values=('child'))

tree.column('#0', stretch=False)  # NO effect!

#the minimum width default that Tk assigns
minwidth = tree.column('#0', option='minwidth')

tree.column('#0', width=minwidth)

#disabling resizing for '#0' column particularly
def handle_click(event):
    if tree.identify_region(event.x, event.y) == "separator":
        if tree.identify_column(event.x) == '#0':
            return "break"

#to have drag drop to have no effect
tree.bind('<Button-1>', handle_click)
#further disabling the double edged arrow display
tree.bind('<Motion>', handle_click)

tree.pack()
root.mainloop()

每次进行def main(): with open('animalVideos.csv', 'r') as my_file: lengths = [float(line.split(',')[2]) for line in my_file.read().splitlines()[1:]] print(sum(lengths)/len(lengths), min(lengths), max(lengths)) main() 循环时,您的代码都会替换shortestlongest的值。在单个列表中收集所有长度要容易得多,然后使用该列表来确定最短和最长的视频

如果您要使用for文件执行比此更复杂的操作,则应使用csv模块,这会使事情变得更加容易