小编Dor*_*Ron的帖子

你什么时候使用reduce()而不是sum()?

我最近开始学习函数式编程,并在尝试计算一个类的测验平均值时提出了这个例子.

我想出的例子是:

scores = [90, 91, 92, 94, 95, 96, 97, 99, 100]

def add(num1, num2):
    '''returns the sum of the parameters'''
    return num1 + num2

import operator 

timeit reduce(add, scores) / len(scores)  #--> 1000000 loops, best of 3: 799 ns per loop

timeit sum(scores) / len(scores)  #--> 1000000 loops, best of 3: 207 ns per loop

timeit reduce(operator.add, scores) / len(scores) #--> 1000000 loops, best of 3: 485 ns per loop
Run Code Online (Sandbox Code Playgroud)

看起来在上面的例子中,使用更高阶函数几乎慢了4倍.

所以我的问题是,何时是使用更高阶函数的好时机,因为上面的例子显然不是?

python profiling functional-programming

9
推荐指数
3
解决办法
7931
查看次数

字符串格式化sqlite3中的SQL查询

我一直在玩sqlite3,我得到一个sqlite3.OperationalError:接近"sweet":我的代码行的语法错误query_cursor.execute("INSERT INTO mcdonalds_menu VALUES(%d, %s, %f, %s, %d)" % (ids[num],names[num], price[num], descriptions[num], calories[num]))当我在3个单独的查询中输入值时,代码似乎工作,但我是试图通过使用for循环让我的代码更干.到目前为止的代码:

import sqlite3

filename = sqlite3.connect("McDonalds_Menu.db")
query_cursor = filename.cursor()

def create_table():
    query_cursor.execute( "CREATE TABLE mcdonalds_menu (id INTEGER, name VARCHAR(20), price DECIMAL(3, 2), description TEXT, calories INTEGER)")

ids = range(1,4)
names = ["McFlurry", "Fillet-o-Fish", "McCafe"]
price = 1.50, 2.25, 0.99
descriptions = ["Delicious sweet icecream", "Best fish in the sea", "Freshly brewed Colombian coffee"]
calories = 220, 450, 75

def data_entry():
    for num in …
Run Code Online (Sandbox Code Playgroud)

python sqlite

8
推荐指数
2
解决办法
3743
查看次数

在 graphql-ruby 中定义输入类型

我正在尝试使用 graphql-ruby 和 rails 为过滤器实现输入类型。

基本输入类型如下所示:

module Types
  class BaseInputObject < GraphQL::Schema::InputObject
  end
end
Run Code Online (Sandbox Code Playgroud)

我自己的输入类型看起来像:

module Types
    class PhotoFilterType < Types::BaseInputObject
        argument :attribution, String, "Filters by submitter", required: false
        argument :country, String, "Filters by country", required: false
        argument :year, Int, "Filters by year", required: false
    end
end
Run Code Online (Sandbox Code Playgroud)

query_type 的方法标题如下所示:

    field :filtered_photos, [Types::PhotoType], null: true do
      argument :filters, Types::PhotoFilterType, 'filters for photo', required: true
    end
Run Code Online (Sandbox Code Playgroud)

查询如下:

const FILTER_QUERY = gql`
  query getFilteredPhotos($filters: PhotoFilterType!) {
    filteredPhotos(filters: $filters) {
      id
      title
      width
      height …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails graphql react-apollo graphql-ruby

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

使用std :: find在std :: vector中查找std :: tuple

所以我有一个使用以下代码制作的元组坐标向量:

vector<tuple<int, int>> coordinates;
for (int i = 0; i <  7; i++){
   for (int j = 0; j < 6; j++){
      coordinates.push_back(make_tuple(i, j));
   }
}
Run Code Online (Sandbox Code Playgroud)

我试图用"x","o"或"."来填充董事会.以下内容:

void displayBoard(vector<tuple<int,int>>& board, vector<tuple<int,int>>& p1, vector<tuple<int,int>>& p2){  // prints out board
  cout << "  a   b   c   d   e   f   g\n";  // top row
  for (int i = 1; i < 43; i++){
    if (i % 7 == 0) {
      if (find(p1.begin(), p1.end(), board[i])) cout << "| x |\n";
      else if (find(p2.begin(), p2.end(), …
Run Code Online (Sandbox Code Playgroud)

c++ tuples vector

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