Python 如何在打印列表中选择第一个数字并将其放入方程式中?

Python 如何在打印列表中选择第一个数字并将其放入方程式中?,python,list,numpy,Python,List,Numpy,我有一个在日志文件上工作的程序,可以将其缩小到两个项目。这就是我所能做到的,这就是我的程序停止的地方,如下所示。但我需要把这两项中的第一项放到一个等式中,把第二项放到另一个等式中。我该怎么做 import pylab from pylab import * from numpy import * from collections import Counter list_of_files=[('logfile.txt', 'F')] datalist = [( pylab.l

我有一个在日志文件上工作的程序,可以将其缩小到两个项目。这就是我所能做到的,这就是我的程序停止的地方,如下所示。但我需要把这两项中的第一项放到一个等式中,把第二项放到另一个等式中。我该怎么做

import pylab  
from pylab import *  
from numpy import *  
from collections import Counter  

list_of_files=[('logfile.txt', 'F')]  
datalist = [( pylab.loadtxt(filename), label ) for filename, label in list_of_files]  
for data, label in datalist:    

      print [k for k,v in Counter(data[:,1]).items() if v>1 and 1500<=k<2200]
导入pylab
从pylab进口*
来自numpy进口*
从收款进口柜台
文件列表=[('logfile.txt','F')]
datalist=[(pylab.loadtxt(filename),label)表示文件名,label位于文件列表中]
对于数据,请在数据列表中添加标签:

打印[k代表k,v在计数器中(数据[:,1])。items()如果v>1和1500您无法从打印的内容中选择值。一旦打印,它就会被遗忘

你必须把它存储在一个变量中,这样你就可以很容易地把它挑选出来

例如,与此相反:

print [k for k,v in Counter(data[:,1]).items() if v>1 and 1500<=k<2200]
另一方面,如果您需要按照某种排序顺序对最终结果进行排序,您可以在事实发生后对其进行排序:

thingies = sorted(k for k,v in Counter(data[:,1]).items() if v>1 and 1500<=k<2200)

thingies=sorted(k代表k,v在计数器中(数据[:,1])。items()如果v>1和1500您无法从打印的内容中选择值。一旦打印,它就会被遗忘

你必须把它存储在一个变量中,这样你就可以很容易地把它挑选出来

例如,与此相反:

print [k for k,v in Counter(data[:,1]).items() if v>1 and 1500<=k<2200]
另一方面,如果您需要按照某种排序顺序对最终结果进行排序,您可以在事实发生后对其进行排序:

thingies = sorted(k for k,v in Counter(data[:,1]).items() if v>1 and 1500<=k<2200)

thingies=sorted(k代表k,v在计数器中(数据[:,1])。items()如果v>1和1500初学者的标准警告:不要从X import*
执行
,尤其不要使用
numpy
pylab
。这将替换某些内置函数(
any
all
)使用相同名称的
numpy
函数,在某些情况下会有危险的不同行为。标准缩写是
将numpy作为np
导入,然后使用
np.loadtxt
,或者如果您坚持您可以从numpy导入loadtxt
然后使用
loadtxt
。它甚至更多地来自于to当
X
是一个动态生成的绑定库,就像gobj和pyobjc创建的绑定库;
从Cocoa导入*
扫描整个Objective-C运行时几十秒,然后给你几千个名称…@DSM大体上我同意,但有时你正在编写dedicated,从pylab import*
执行
时,用10-20行脚本解析文件并绘制数据不会造成任何损害。事实上,我非常确定
pylab
就是为了这个目的(因为它应该将python变成免费的MATLAB替代品).但是,如果我必须做出一个黑白声明,我宁愿不要按照你说的去做。@SethMMorton:如果你知道为什么不应该这样做,我会说它不会造成任何损害。@DSM知识就是力量!初学者的标准警告:不要从X导入*
中执行
,尤其是不使用
numpy
pylab
。这将替换某些内置功能(
any
all
,例如)使用相同名称的
numpy
函数,在某些情况下会有危险的不同行为。标准缩写是
将numpy作为np
导入,然后使用
np.loadtxt
,或者如果您坚持您可以从numpy导入loadtxt
然后使用
loadtxt
。它甚至更多地来自于to当
X
是一个动态生成的绑定库,就像gobj和pyobjc创建的绑定库;
从Cocoa导入*
扫描整个Objective-C运行时几十秒,然后给你几千个名称…@DSM大体上我同意,但有时你正在编写dedicated,从pylab import*
执行
时,用10-20行脚本解析文件并绘制数据不会造成任何损害。事实上,我非常确定
pylab
就是为了这个目的(因为它应该将python变成免费的MATLAB替代品).但是,如果我必须做出一个黑白声明,我宁愿不按照你说的去做。@SethMMorton:如果你知道为什么不应该这样做,我会说它不会造成任何损害。@DSM知识就是力量!谢谢你,阿巴内特。我已经试过你的程序了,效果很好!RicoWell,在运行程序几次之后,我注意到有时候e两个数字倒排,这会导致方程给出错误的结果。在测试过程中,较高的数值总是排在第一位,并且应该始终是[0]数字。那么,我如何确保较高的数值是[0],较低的数值是[1]?谢谢abarnert。我已经试过你的程序了,效果很好!RicoWell,在运行程序几次之后,我注意到有时这两个数字会倒排,这会导致方程给出错误的结果。在测试过程中,较高的数值总是排在第一位,并且应该始终是[0]数字。那么,如何确保较高值的数字为[0],较低值的数字为[1]?
thingies = sorted((k for k,v in Counter(data[:,1]).items() if v>1 and 1500<=k<2200),
                  reverse=True)