我在C#中有以下代码片段:
var actions = new List<Func<int>>();
IEnumerable<int> values = new List<int> { 1, 2, 3 };
foreach (int value in values)
{
actions.Add(() => value * value);
}
foreach (var action in actions)
{
Console.WriteLine(action()); ;
}
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
它运行正常,但我没有得到我期望的结果.
实际结果
9,9,9
预期结果
1,4,9
为什么我没有得到我期望的结果?
我有一个用户输入的多项式,我只想使用它,如果它只有字符串中的字符1234567890^-+x.
如何在不使用外部包的情况下检查是否存在?我只想使用内置的Python 2.5函数.
我正在编写一个可以在任何Mac上运行而无需外部软件包的程序.
以下代码读取清理的泰坦尼克数据,打印出所有功能和分数
import csv
import numpy as np
data = np.genfromtxt('titanic.csv',dtype=float, delimiter=',', names=True)
feature_names = np.array(data.dtype.names)
feature_names = feature_names[[ 0,1,2,3,4]]
data = np.genfromtxt('plants.csv',dtype=float, delimiter=',', skip_header=1)
_X = data[:, [0,1,2,3,4]]
#Return a flattened array required by scikit-learn fit for 2nd argument
_y = np.ravel(data[:,[5]])
from sklearn import feature_selection
fs = feature_selection.SelectPercentile(feature_selection.chi2, percentile=20)
X_train_fs = fs.fit_transform(_X, _y)
print feature_names, '\n', fs.scores_
Run Code Online (Sandbox Code Playgroud)
结果:
['A' 'B' 'C' 'D' 'E']
[ 4.7324711 89.1428574 70.23474577 7.02447375 52.42447817]
Run Code Online (Sandbox Code Playgroud)
我想要做的是捕获前20%的功能,并将名称和分数存储在一个数组中,然后我可以按分数排序.这将有助于我在更大的功能集减少尺寸.为什么我会获得所有5个功能,如何解决这个问题,以及如何存储和打印前20%的功能名称和分数?
假设我有以下SQL(如果您愿意,可以针对数据资源管理器运行):
SELECT COUNT(Id) AS "Count"
INTO #temp
FROM Posts
PRINT (SELECT * FROM #temp)
Run Code Online (Sandbox Code Playgroud)
这会产生错误:
"在此上下文中不允许使用子查询.只允许使用标量表达式."
现在,在这种情况下,我知道这#temp是一行和一列的表,因此(SELECT * FROM #temp)只产生一个值.有没有办法说服SQL Server将其视为标量?
我知道我可以将它保存到变量然后PRINT改为:
DECLARE @count int = (SELECT * FROM #temp)
PRINT @count
Run Code Online (Sandbox Code Playgroud)
但这似乎是一个不必要的额外步骤.
在变量声明之后,星号(*)和数字的含义是什么?如图所示WpName As String * 6
Public Type WayPoint
WpIndex As Integer
WpName As String * 6
WpLat As Double
WpLon As Double
WpLatDir As String * 1
WpLonDir As String * 1
End Type
Run Code Online (Sandbox Code Playgroud) 似乎术语"广义抽象数据类型"和"广义代数数据类型"可互换使用,但我确信从技术上讲它们不是一回事.
有人可以解释这个区别,也许在Haskell的上下文中使用一个简单的例子?
我希望能够验证用户是否在我的程序中输入了有效的名称。如果他们没有输入有效的姓名,我希望程序继续提示他们再次输入姓名。如果输入的名称有效,我希望程序向用户打招呼。
到目前为止我有:
import re
user_name = input("Please enter your name: ")
if not re.match("^[A-Za-z]*$", user_name):
print ("Error! Make sure you only use letters in your name")
else:
print("Hello "+ user_name)
Run Code Online (Sandbox Code Playgroud)
如果他们的名字无效,我将如何循环这个?
import json
def json_serialize(name, ftype, path):
prof_info = []
prof_info.append({
'profile_name': name,
'filter_type': ftype
})
with open(path, "w") as f:
json.dumps({'profile_info': prof_info}, f)
json_serialize(profile_name, filter_type, "/home/file.json")
Run Code Online (Sandbox Code Playgroud)
上面的代码不会将数据转储到"file.json"文件中.当我print以前写的时候json.dumps(),数据会在屏幕上打印出来.但它不会被转储到文件中.
文件被创建但在打开它时(使用记事本),什么都没有.为什么?
怎么纠正呢?
我os.startfile('C:\\test\\sample.exe')用来启动应用程序。我不想知道应用程序的退出状态,我只想启动 exe。
我需要将参数传递给那个 exe 就像 'C:\\test\\sample.exe' -color
请提出一种在 Python 中运行它的方法。
有没有办法使用Json.NET通过路径设置属性?
JObject o = JObject.Parse(@"{
'CPU': 'Intel',
'Drivers': {
'Mouse': 'HPQ',
'VideoCard' : 'NVidia'
}
}");
//something like that
o.SetByPath("Drivers.VideoCard") = "Intel";
Run Code Online (Sandbox Code Playgroud)
可能吗?
顺便说一句,我知道我可以这样做:
o["Drivers"]["VideoCard"] = "Intel";
Run Code Online (Sandbox Code Playgroud)
但那不是我想要的.
python ×4
c# ×2
json ×2
gadt ×1
haskell ×1
json.net ×1
lambda ×1
numpy ×1
python-2.5 ×1
python-2.7 ×1
python-3.x ×1
scikit-learn ×1
sql ×1
sql-server ×1
string ×1
vb6 ×1