小编Rhs*_*Rhs的帖子

Python中的String.strip()

在学习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()是可选的.留下它是更好的做法吗?

python string strip

43
推荐指数
3
解决办法
27万
查看次数

KeyTypedEvent KeyEvent的KeyCode始终为0?

我在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.

java swing keyevent keylistener

16
推荐指数
1
解决办法
2万
查看次数

Python简单交换功能

我在尝试学习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本身.有人可以提供更好的解释吗?谢谢.

python swap

12
推荐指数
3
解决办法
8万
查看次数

加入两个表后的SQL更新

我是SQL新手,使用的是Microsoft SQL Server Management Studio.

我正在尝试编写一个SQL语句,在连接两个表后执行更新.

我有两张桌子:myTable1myTable2.两者共享一个字段MyID,这将是我加入的字段.myTable1包含一个名为的列BitToUpdate.MyTable2包含一个名为的列BitToCheck.

我想设置BitToUpdatemyTable1是1,其中BitToCheckmyTable21为好.

这是我有的:

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,其中BitToCheck1.

所以要在临时表中这样做,我有:

UPDATE #temp_table
SET 
    `BitToUpdate` = 1
WHERE
    `BitToCheck` = 1
Run Code Online (Sandbox Code Playgroud)

这会BitToUpdate在#temp_table中成功更新.但是,当我选择时myTable1,我发现BitToUpdate没有改变.我认为这是有道理的,因为#temp_table并不是真正的"指针"....

但是,接近此更新和更新的正确方法是什么?

sql-server

11
推荐指数
1
解决办法
6万
查看次数

正确使用ArgumentException?

从我所看到的,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吗?

c# exception

11
推荐指数
2
解决办法
4011
查看次数

NetBeans Java项目文本文件路径

我有以下代码来读取文本文件.

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,这样我仍然可以找到这个文件?

java netbeans path

10
推荐指数
2
解决办法
4万
查看次数

AngularJs:将ng-model绑定到单选按钮列表

我试图将单选按钮列表中的选定值绑定到 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)

javascript angularjs angularjs-scope angularjs-controller

10
推荐指数
1
解决办法
3万
查看次数

如何合并两个哈希数组

我有两个哈希数组:

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.在这种情况下,无论是ab包含的关键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)

ruby arrays ruby-hash

7
推荐指数
1
解决办法
3516
查看次数

在Repeater中设置Items的ID

在我的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设置为:

  • MyTextBox1
  • MyTextBox2
  • MyTextBox3

c# asp.net repeater

6
推荐指数
1
解决办法
2万
查看次数

排序自定义对象列表

我有一个名为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)

但它不起作用.

c#

5
推荐指数
1
解决办法
8957
查看次数