我有一个很大的整数数组,我需要在数组中将每10个整数及其对应的索引中的最大值打印为一对.
ex. (max_value, index of max_value in array)
Run Code Online (Sandbox Code Playgroud)
我可以在前10个整数中成功找到最大值和相应的索引,但是我在遍历整个数组时遇到问题.
我尝试过使用:
a = some array of integers
split = [a[i:i+10] for i in xrange(0, len(a), 10)]
for i in split:
j = max(i)
k = i.index(max(i))
print (j,k)
Run Code Online (Sandbox Code Playgroud)
用这种方法的问题是,它分裂我的数组到10所以max_values是正确的块,但指标是不准确的(所有的指标都是0-10之间).我需要找到这样那并不是"的一种方式t将我的数组拆分成块,以便保留原始索引.我确信有一种更简单的循环方式来查找最大值,但我似乎无法弄明白.
编辑批准的答案是正确的,我的所有数据都出现在文件中,但由于它循环并将每条信息写入新行,因此数据无组织并以层叠模式显示.此时它只是一个格式化问题.有人遇到过类似的问题吗?
我有一个for循环,我在其中定义了多个变量.我需要将这些变量中的值打印到CSV,而不是一遍又一遍地写入行.我知道这个解决方案涉及在for循环之外放置"with open"语句,但是python不再识别我的变量.
我认为解决方案的另一部分是将数据附加到变量中,以便您可以在for循环之外调用它,但我不知道如何为我的情况执行此操作.
例:
for item in my_list:
info = inspect.getmembers(item)
name = info[0]
import csv
with open("sample.csv", "w") as csvFile:
fieldnames = ['Item Name']
writer = csv.DictWriter(csvFile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'Item Name': name })
csvFile.close()
Run Code Online (Sandbox Code Playgroud)
在此示例中,无法定义变量"name",因为它是在for循环中定义的.