标签: variable-assignment

条件生成器表达式的意外行为

我正在运行一段代码,意外地在程序的某个部分出现了逻辑错误.在调查该部分时,我创建了一个测试文件来测试正在运行的语句集,并发现一个看起来非常奇怪的异常错误.

我测试了这个简单的代码:

array = [1, 2, 2, 4, 5] # Original array
f = (x for x in array if array.count(x) == 2) # Filters original
array = [5, 6, 1, 2, 9] # Updates original to something else

print(list(f)) # Outputs filtered
Run Code Online (Sandbox Code Playgroud)

输出是:

>>> []
Run Code Online (Sandbox Code Playgroud)

是的,没什么.我期待过滤器理解能够在数组中获取数量为2的项并输出它,但我没有得到:

# Expected output
>>> [2, 2]
Run Code Online (Sandbox Code Playgroud)

当我评论第三行再次测试时:

array = [1, 2, 2, 4, 5] # Original array
f = (x for x in array if array.count(x) == 2) # Filters original
### array …
Run Code Online (Sandbox Code Playgroud)

python generator generator-expression variable-assignment

57
推荐指数
5
解决办法
2594
查看次数

为什么foo = filter(...)返回<filter object>,而不是列表?

在Python IDLE 3.5.0 shell中工作.根据我对内置"过滤器"函数的理解,它会返回列表,元组或字符串,具体取决于您传入的内容.那么,为什么下面的第一个分配工作,而不是第二个('>>>只是交互式Python提示)

>>> def greetings():
    return "hello"

>>> hesaid = greetings()
>>> print(hesaid)
hello
>>> 
>>> shesaid = filter(greetings(), ["hello", "goodbye"])
>>> print(shesaid)
<filter object at 0x02B8E410>
Run Code Online (Sandbox Code Playgroud)

python variables filter variable-assignment

55
推荐指数
3
解决办法
7万
查看次数

测试是否在R中设置了函数的参数

我有一个f带两个参数(p1p2)的函数:

如果对于参数p2没有将值传递给函数,p1则应使用^ 2 的值.但是,如果给出一个值,我怎样才能在函数中找到.问题是p2如果没有值,则不会初始化变量.因此我无法测试p2存在NULL.

f <- function(p1, p2) {
    if(is.null(p2)) {
        p2=p1^2
    }
    p1-p2
}
Run Code Online (Sandbox Code Playgroud)

是否有可能检查是否将值p2传递给函数?(我找不到isset()- 功能或类似的东西.)

variables r function variable-assignment isset

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

你能在Go中一次声明多个变量吗?

是否可以使用Golang一次声明多个变量?

例如,在Python中,您可以键入:

a = b = c = 80
Run Code Online (Sandbox Code Playgroud)

并且所有值都是80.

variable-assignment go

53
推荐指数
5
解决办法
5万
查看次数

Javascript代码技巧:foo.x的价值是什么

我在Github前端访谈问题集中遇到了这个问题:

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};
Run Code Online (Sandbox Code Playgroud)

问题:foo.x的价值是多少?

答案是undefined.

我做了一些研究,我明白这个问题是(如果我错了,请纠正我):

  • var foo = {n: 1};声明一个foo属性n等于1 的对象.
  • var bar = foo;声明了一个bar引用相同对象的对象foo.
  • foo.x = foo = {n: 2}; 我认为这等于 foo.x = (foo = {n: 2});
  • 然后我得到了foo.x平等undefined.但是,值bar.x是对象{n:2}.

如果barfoo是指同一个对象,为什么bar.x得到的价值,同时foo.xundefined?真正发生了foo.x = foo = {n: 2}; …

javascript object variable-assignment

53
推荐指数
3
解决办法
7081
查看次数

是否可以在Scala中对变量进行元组赋值?

可能重复:
元组参数声明和赋值奇怪

在Scala中,可以通过以下方式对元组进行多变量赋值:

val (a, b) = (1, 2)
Run Code Online (Sandbox Code Playgroud)

但是,用于赋值给变量的类似语法似乎不起作用.例如,我想这样做:

var (c, d) = (3, 4)
(c, d) = (5, 6)
Run Code Online (Sandbox Code Playgroud)

我想重用cd多变量赋值.这可能吗?

scala tuples variable-assignment

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

如何在Python中制作2D数组的副本?

X是一个2D数组.我想要一个Y与数组具有相同值的新变量X.而且,对Y的任何进一步操作都不应该影响X的值.

在我看来这么自然使用y = x.但它不适用于数组.如果我这样做然后改变y,x也会改变.我发现问题可以像这样解决:y = x[:]

但它不适用于2D阵列.例如:

x = [[1,2],[3,4]]
y = x[:]
y[0][0]= 1000
print x
Run Code Online (Sandbox Code Playgroud)

回报[ [1000, 2], [3, 4] ].它还如果我更换于事无补y=x[:]y = x[:][:].

有人知道什么是正确而简单的方法吗?

python arrays copy object variable-assignment

49
推荐指数
3
解决办法
6万
查看次数

检查返回值是否为空,如果是,则在一行中使用一个方法调用进行分配

Java充斥着如下语句:

if(cage.getChicken() != null) {
    dinner = cage.getChicken();
} else {
    dinner = getFreeRangeChicken();
}
Run Code Online (Sandbox Code Playgroud)

getChicken()在返回的对象可以分配之前需要两次调用dinner.

这也可以写成一行,如下所示:

dinner = cage.getChicken() != null? cage.getChicken() : getFreeRangeChicken();
Run Code Online (Sandbox Code Playgroud)

但唉,还有两个电话getChicken().

当然我们可以分配一个局部变量,然后再次使用三元运算符来分配它,如果它不是null,但这是两行而不是那么漂亮:

FutureMeal chicken = cage.getChicken();
dinner = chicken != null? chicken : getFreeRangeChicken();
Run Code Online (Sandbox Code Playgroud)

那么有什么方法可以说:

变量var =某些值,如果某个值不为null或其他值;

我想我只是在这里讨论语法,在编译代码之后,它可能没有太大的区别代码是如何在性能意义上编写的.

因为这是一个很常见的代码,所以有一个单行写入它会很棒.

是否有其他语言有此功能?

java syntax null variable-assignment method-call

48
推荐指数
6
解决办法
8万
查看次数

将类变量指定为类方法参数的默认值

我想在类中构建一个方法,其中包含从此类中获取的默认值参数.一般来说,我会过滤一些数据.在我的班级里面,我有一个方法,通常我传递数据向量.有时我没有矢量,我采用模拟数据.每次我没有传递特定的矢量时,我都希望默认采用模拟数据.我认为它应该是一个简单的构造,我在我的方法定义中说a=self.vector.但由于某种原因,我有一个错误NameError: name 'self' is not defined.简化的结构是:

class baseClass(object):  # This class takes an initial data or simulation
    def __init__(self):
        self.x = 1
        self.y = 2

class extendedClass(baseClass): # This class does some filtering
    def __init__(self):
        baseClass.__init__(self)
        self.z = 5
    def doSomething(self, a=self.z):
        self.z = 3
        self.b = a

if __name__ == '__main__':
    a = extendedClass()
    print a.__dict__
    a.doSomething()
    print a.__dict__
Run Code Online (Sandbox Code Playgroud)

我预期的输出应该是:

{'y': 2, 'x': 1, 'z': 5}
{'y': 2, 'x': 1, 'z': 3, 'b': 5}
Run Code Online (Sandbox Code Playgroud)

我试过默认分配,因为 …

python class variable-assignment

46
推荐指数
3
解决办法
2万
查看次数

Python:如果不存在则分配值

我是Python新手的RoR程序员.我试图找到允许我将变量设置为特定值的语法,只有先前未分配.基本上我想要:

__CODE__

__CODE__

python language-comparisons variable-assignment python-2.7

45
推荐指数
6
解决办法
13万
查看次数