我有一个包含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()
答案 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()
循环时,您的代码都会替换shortest
和longest
的值。在单个列表中收集所有长度要容易得多,然后使用该列表来确定最短和最长的视频
如果您要使用for
文件执行比此更复杂的操作,则应使用csv
模块,这会使事情变得更加容易