在学习python时,我遇到了这个代码,它接受一个文本文件,将每一行拆分成一个数组,并将其插入到一个自定义字典中,其中数组[0]是键,数组[1]是值:
my_dict = {}
infile = open("file.txt")
for line in infile:
#line = line.strip()
#parts = [p.strip() for p in line.split("\t")]
parts = [p for p in line.split("\t")]
my_dict[parts[0]] = parts[1]
print line
for key in my_dict:
print "key: " + key + "\t" + "value " + my_dict[key]
Run Code Online (Sandbox Code Playgroud)
我在关闭和打开注释行的情况下运行程序,得到了相同的结果.(当然用它下面的一行替换第二个注释行.)在我看来,做一个strip()是可选的.留下它是更好的做法吗?
我在NetBeans IDE中有一个Java Swing应用程序.
我创建了一个表单并将KeyListener附加到我的各种控件中:
jButton1.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
keyTypedEvent(evt);
}
});
Run Code Online (Sandbox Code Playgroud)
并keyTypedEvent
定义为:
private void keyTypedEvent(java.awt.event.KeyEvent evt)
{
System.out.println(evt);
appendDisplay(String.valueOf(evt.getKeyChar()));
}
Run Code Online (Sandbox Code Playgroud)
我添加了一个println
,evt
看看会发生什么,并验证我的keylistener确实有效.当我构建并运行我的应用程序时,我意识到输出总是似乎有一个keycode = 0
为了验证这一点,我把println改为了evt.getKeyCode()
,它总是返回0.
我可能完全误解了KeyCode的功能,但我认为它可以与Oracle文档中的值进行协调:
http://docs.oracle.com/javase/7/docs/api/constant-values.html#java.awt.event.KeyEvent.VK_ESCAPE
例如,VK_ESCAPE的值为27.
我在尝试学习python时遇到了这个问题.考虑以下功能:
def swap0(s1, s2):
assert type(s1) == list and type(s2) == list
tmp = s1[:]
s1 = s2[:]
s2 = tmp
return
s1 = [1]
s2 = [2]
swap0(s1, s2)
print s1, s2
Run Code Online (Sandbox Code Playgroud)
s1和s2会打印什么?
运行问题后,我发现print语句将打印1 2.似乎s1和s2的值没有从swap0
函数中改变.我能想到的唯一解释是因为这条线.
tmp = s1[:]
Run Code Online (Sandbox Code Playgroud)
由于s1 [:]是一个副本,因此在函数调用中s1的值不会改变是有道理的.但是因为参数swap0
是(s1,s2),我不确定是否在执行tmp = s1 [:]之后.我随时都可以
s1 = something...
Run Code Online (Sandbox Code Playgroud)
它将是对s1副本的引用,而不是s1本身.有人可以提供更好的解释吗?谢谢.
我是SQL新手,使用的是Microsoft SQL Server Management Studio.
我正在尝试编写一个SQL语句,在连接两个表后执行更新.
我有两张桌子:myTable1
和myTable2
.两者共享一个字段MyID
,这将是我加入的字段.myTable1
包含一个名为的列BitToUpdate
.MyTable2包含一个名为的列BitToCheck
.
我想设置BitToUpdate
的myTable1
是1,其中BitToCheck
在myTable2
1为好.
这是我有的:
SELECT M.MyID, BitToUpdate, BitToCheck
INTO #temp_table
FROM myTable1 as T1
LEFT JOIN myTable2 as T2
ON M.MyId = PO.MyId
Run Code Online (Sandbox Code Playgroud)
首先,我想加入这两个表myTable1
,并myTable2
在他们的ID,并把结果存储在一个临时表.
接下来,我想更新BitToUpdate
为1,其中BitToCheck
1.
所以要在临时表中这样做,我有:
UPDATE #temp_table
SET
`BitToUpdate` = 1
WHERE
`BitToCheck` = 1
Run Code Online (Sandbox Code Playgroud)
这会BitToUpdate
在#temp_table中成功更新.但是,当我选择时myTable1
,我发现BitToUpdate
没有改变.我认为这是有道理的,因为#temp_table并不是真正的"指针"....
但是,接近此更新和更新的正确方法是什么?
从我所看到的,ArgumentExceptions
通常使用如下:
public void UpdateUser(User user)
{
if (user == null) throw new ArgumentException("user");
// etc...
}
Run Code Online (Sandbox Code Playgroud)
但如果我有这样的事情怎么办:
public void UpdateUser(int idOfUser)
{
var user = GetUserById(idOfUser);
if (user == null) throw new ArgumentException("idOfUser");
// etc...
}
Run Code Online (Sandbox Code Playgroud)
那还是ArgumentException
吗?
我有以下代码来读取文本文件.
public static void main(String[] args)
{
try
{
Scanner in = new Scanner(new FileReader("input.txt"));
while(in.hasNext())
{
System.out.println(in.next());
}
}
catch (FileNotFoundException ex)
{
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
Run Code Online (Sandbox Code Playgroud)
我的项目结构设置如下:
build/ directory contains class
dist/ directory contains the jar file
src/ directory contains source
input.txt the text file to read
Run Code Online (Sandbox Code Playgroud)
如果我把我的文本文件input.txt
到一个名为目录test
是相同的目录作为build
,dist
以及src
什么应该进入的参数filereader
,这样我仍然可以找到这个文件?
我试图将单选按钮列表中的选定值绑定到 ng-model
我有:
<!DOCTYPE html>
<html ng-app="testApp">
<head>
<script src="./bower_components/angular/angular.min.js"></script>
<script src="test.js"></script>
</head>
<body ng-controller="testController">
<form>
<div ng-repeat="option in occurrenceOptions">
<input type="radio" name="occurrence" ng-value="option" ng-model="selectedOccurrence" /><label>{{ option }}</label>
</div>
</form>
<div>The selected value is : {{ selectedOccurrence }}</div>
<!-- This works -->
<input type="radio" ng-model="selected2" ng-value="'1'"> 1
<input type="radio" ng-model="selected2" ng-value="'2'"> 2
<input type="radio" ng-model="selected2" ng-value="'3'"> 3
<div>This selected value is : {{ selected2 }} </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
对于我的控制器:
(function () {
var app = angular.module('testApp', []);
app.controller('testController', function($scope) { …
Run Code Online (Sandbox Code Playgroud) 我有两个哈希数组:
a = [
{
key: 1,
value: "foo"
},
{
key: 2,
value: "baz"
}
]
b = [
{
key: 1,
value: "bar"
},
{
key: 1000,
value: "something"
}
]
Run Code Online (Sandbox Code Playgroud)
我想将它们合并到一个哈希数组中,所以基本上a + b
除了我想要任何重复的键b
来覆盖那些a
.在这种情况下,无论是a
和b
包含的关键1
,我想最终的结果具有b
的键值对.
这是预期的结果:
expected = [
{
key: 1,
value: "bar"
},
{
key: 2,
value: "baz"
},
{
key: 1000,
value: "something"
}
]
Run Code Online (Sandbox Code Playgroud)
我得到了它的工作,但我想知道是否有一个不那么冗长的方式这样做:
hash_result = {}
a.each do |item| …
Run Code Online (Sandbox Code Playgroud) 在我的aspx中,我有一个包含三个文本框的转发器:
<asp:Repeater ID="myRepeater" runat="server">
<ItemTemplate>
<asp:TextBox ID="myTextBox" runat="server"
<ItemTemplate/>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)
在我的代码隐藏中,我将转发器数据绑定到一个数组 int data = new int[3];
所以我的页面显示三个文本框,每个文本框的myTextBox ID为三次.有没有办法将这些ID设置为:
我有一个名为Person的类,它包含一个属性LastName,它反映了一个与Person的姓氏相对应的字符串.
我创建了一个List如下:
var People = List<Person>
Run Code Online (Sandbox Code Playgroud)
我想要做的是按字母顺序按人员的LastName属性排序.
看了一些例子,我试过了
People = People.OrderBy(p => p.LastName);
Run Code Online (Sandbox Code Playgroud)
但它不起作用.