小编Ali*_*ina的帖子

在ruby中对数组中的每3个元素求和

是否有任何有效和简短的方法来对数组的每3个元素求和?

ar = [1, 2, 3, 4, 5, 6, 7, 8, 1]
sum_ar = [6, 15, 16]
Run Code Online (Sandbox Code Playgroud)

前3个元素1+2+3=6
接下来3个元素4+5+6=15
接下来3个元素 7+8+1=15
...
如果只剩下两个元素,求它们

我可以这样做:

y=0
s=ar.size/3
((0..s).step(3).to_a).each do |i|
    sum_ar[y]=ar[i..i+2].inject(:+)
    y=y+1
end
Run Code Online (Sandbox Code Playgroud)

但是在这种数组的情况下我将错过元素,其中大小不是3的精确乘法:

ar=[1, 2, 3, 4, 5, 6, 7, 8]
Run Code Online (Sandbox Code Playgroud)

ruby arrays

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

在 for 循环中初始化 dict 的 pythonic 方式

python 有没有初始化字典的方法?

animals = ["dog","cat","cow"]
for x in animals:
    primers_pos[x]={}
Run Code Online (Sandbox Code Playgroud)

有没有类似的东西

(primers_pos[x]={} for x in animals)
Run Code Online (Sandbox Code Playgroud)

python dictionary

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

R:仅在字符串末尾使用gsub标点符号

我有像'aa; a''aa;'这样的字符串 我需要删除';' (或任何其他标点符号)仅在字符串以其结尾时使用。如果它以它开头或包含在中间,则我不想删除它。

下一行导致删除“;”

gsub("(^.*)[[:punct:]]","",'a;a')
Run Code Online (Sandbox Code Playgroud)

regex r gsub

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

python中奇怪的十进制输出

我正在使用 python3.9 并尝试计算以下内容:

17.36-14.76。这是一个非常简单的计算,输出应该是 2.6,没有任何其他额外的数字。

但是,在 python3.9 中,我得到以下输出:

>>> 17.36-14.76
2.5999999999999996
Run Code Online (Sandbox Code Playgroud)

我知道,我可以将结果四舍五入以获得所需的输出。但是,我不明白为什么它以一种奇怪的方式计算它,因为 17.36-14.76 不是 2.5999999999999996,17.36-14.76 是 2.6。

python有一些奇怪的设置吗?

python floating-point

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

Ruby on Rails,从控制器中的模型调用函数

我的控制器中有以下方法:

def create
  p_attr=params[:upload]
  p_attr[:upload] = params[:upload][:upload].first if params[:upload][:arraydb].class == Array
  @upload = Upload.new(p_attr)

  respond_to do |format|
    if @upload.save
      @arraydb.process_name
    end
  end 
end
Run Code Online (Sandbox Code Playgroud)

在模型中我有另一种方法,我可以处理刚刚保存的上传:

def self.process_name 
  update_attributes(:user_id => current_user.id)
  update_attributes(:defined => "no")
end
Run Code Online (Sandbox Code Playgroud)

它给了我一个错误,该方法process_name没有定义Upload

问题是什么?如何从控制器更新模型中刚刚保存的文件的属性?提前致谢.

ruby ruby-on-rails

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

用其他两个数组中的值替换数组中的nil元素

我有三个数组:g,ab.g有两组一个或多个连续nil值.第一个(第二个)组包含a.size(b.size)nils.我要替换的每个nil与相应的元件中的第一(第二)组中的a(b).例如,如果:

g = [1, 2, nil, nil, nil, 3, nil, nil, nil, nil]
a = [55, 45, 56]
b = [100, 200, 300, 400]
Run Code Online (Sandbox Code Playgroud)

我希望g成为:

 [1, 2, 55, 45, 56, 3, 100, 200, 300, 400]
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

ruby arrays

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

python绝对导入函数

trend.py和test_trend.py位于同一文件夹中.我有一个带有函数find_regres_values的类Trend,它是从实例方法perform_analysis调用的.

trend.py:

class Trend:
    def __init__(self, values, trend_type):
        self.all_values = values

    def permorn_analysis(self, first, trend_type):
        #blabla
        vals_reg = ["a", "b", "c", "d"]
        find_regres_values(vals_reg, first, trend_type)

    def find_regres_values(vals_reg, first, trend_type):
        #do somethin
        pass
Run Code Online (Sandbox Code Playgroud)

在test_trend.py中

from trend import find_regres_values
class ConsecRegions(unittest.TestCase):

    def test_find_regres_values_decreas_min_before_max(self):
        #initialize some values
        output = find_regres_values(vals_reg, first, trend_type)
        self.assertEqual(output, result)
Run Code Online (Sandbox Code Playgroud)

它显示了一个错误:

  File "test_trend.py", line 2, in <module>
    from trend import find_regres_values
ImportError: cannot import name find_regres_values
Run Code Online (Sandbox Code Playgroud)

如何导入一个功能进行测试?

python

0
推荐指数
1
解决办法
56
查看次数

标签 统计

python ×3

ruby ×3

arrays ×2

dictionary ×1

floating-point ×1

gsub ×1

r ×1

regex ×1

ruby-on-rails ×1