小编pyC*_*hon的帖子

接受由python中的空格分隔的多个用户输入并将它们附加到列表中

如何接受由空格分隔的多个用户输入?我不知道输入的数量,但我知道它们都是整数.

以下是一些示例输入:

13213 412 8143
12 312
1321 142 9421 9 29 319 
Run Code Online (Sandbox Code Playgroud)

我知道如果我事先知道输入的数量就可以做到这一点,但我在制作这种通用时遇到了麻烦.我可以要求用户输入他将输入多少组的整数:

inputs = int(raw_input("Enter number of raw inputs "))
num = []
for i in xrange(1, inputs):
    num.append(raw_input('Enter the %s number: '))
Run Code Online (Sandbox Code Playgroud)

但我正在寻找一个更优雅的解决方案,不需要问用户2个问题.

python list

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

Nginx ssl_session_cache 共享:SSL 和共享:MozSSL 之间的区别?

设置时,ssl_session_cacheNginx经常看到示例将其设置为两个选项之一:

ssl_session_cache shared:SSL:10m;或者ssl_session_cache shared:MozSSL:10m;

这两者有什么区别?

nginx nginx-config

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

Django Admin:显示模型列表

我在用Django 1.8.8.

我有很多模型定义如下:

class MainModel(models.Model):
    value = models.IntegerField(null=False, editable=True, default=20)
    dt_modified = models.DateTimeField(null=True, auto_now=True)

class MyModel1(MainModel, models.Model):
    name = models.CharField(null=False, editable=False, max_length=50)

class MyModel2(MainModel, models.Model):
    foo = models.CharField(null=False, editable=False, max_length=50)
Run Code Online (Sandbox Code Playgroud)

我的管理页面目前正如此设置,

class MyModelAdmin(admin.ModelAdmin):
    list_display = ('value', 'dt_modified')
    search_fields = ['value']
    date_hierarchy = 'dt_modified'

models = [MyModel1, MyModel2]
admin.site.register(models, MyModelAdmin)
Run Code Online (Sandbox Code Playgroud)

我想设置我的管理页面如下:在首页上有一个链接/admin,"MainModels"指示我到另一个页面,我可以从所有派生模型的列表中选择MyModel,即[MyModel1, MyModel2, ....MyMoneyN]允许我编辑选定的派生模型.MyModel#.

上面代码的问题是它为每个编号的模型创建了一个顶级链接.

django django-admin

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

Pandas date_range从结束日期开始到开始日期

在尝试使用Python生成一系列半年度日期.Pandas提供了一个pd.date_range帮助这个的功能,但我希望我的日期范围从结束日期开始并向后迭代.

例如,给定输入:

start = datetime.datetime(2016 ,2, 8)
end = datetime.datetime(2018 , 6, 1)
pd.date_range(start, end, freq='6m')
Run Code Online (Sandbox Code Playgroud)

结果是:

DatetimeIndex(['2016-02-29', '2016-08-31', '2017-02-28', '2017-08-31',
               '2018-02-28'])
Run Code Online (Sandbox Code Playgroud)

如何生成以下内容:

DatetimeIndex(['2016-02-08', '2016-06-01', '2016-12-01', '2017-06-01',
               '2017-12-01', '2018-06-01'])
Run Code Online (Sandbox Code Playgroud)

python datetime pandas

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

使用Django ORM,如何为所有可能的组合创建唯一的哈希

我想为模型中的每个选择组合维护一个具有唯一id的Django模型.然后,我希望能够使用新字段更新模型,而不是先前的唯一ID更改.id可以是哈希或整数或任何东西.实现这一目标的最佳方法是什么?

class MyModel(models.Model):
    WINDOW_MIN = 5
    WINDOW_MAX = 7
    WINDOW_CHOICES = [(i,i) for i in range(WINDOW_MIN - 1, WINDOW_MAX - 1)]
    window = models.PositiveIntegerField('Window', editable=True, default=WINDOW_MIN, choices=WINDOW_CHOICES)
    is_live = models.BooleanField('Live', editable=True, default=False)
    unique_id = ....
Run Code Online (Sandbox Code Playgroud)

鉴于上面的例子,将有3*2 == 6个唯一id.如果我添加另一个可编辑的布尔字段,我不想更改以前的唯一ID,但我希望为新的布尔字段生成新的唯一ID.

这背后的思考过程是MyModel中的参数定义函数的输入,该函数的结果MyResultModel通过unique_id和模型的名称存储在另一个Django 模型中.这背后的原因是MyModel每个都有多个变体,它们自己设置的唯一组合会定期更新,但MyResultModel中的结果集在MyModel1和MyModelN之间是相同的.理想情况下,我希望unique_id是自动生成的.换句话说,存储在其中的结果集的键MyResultModel是model_name(MyModel)和unique_id.我想要将这么多(MyModel1,... MyModelN)管理到一个(MyResultModel)关系.

class MyResultModel(models.Model):
    unique_id = ...
    model_name = models.CharField(max_length=200, default='', blank=False) # Points to a Django Model ex MyModel
    result1 = ...
    result2 = ...
Run Code Online (Sandbox Code Playgroud)

python django django-models

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

s3fs 自定义端点 url

如何将自定义端点 url 传递给s3fs.S3FileSystem

我试过了:

kwargs = {'endpoint_url':"https://s3.wasabisys.com",
          'region_name':'us-east-1'}
self.client = s3fs.S3FileSystem(key=AWS_ACCESS_KEY_ID, 
                                secret=AWS_SECRET_ACCESS_KEY,
                                use_ssl=True,
                                **kwargs)
Run Code Online (Sandbox Code Playgroud)

但是我收到错误:

  File "s3fs/core.py", line 215, in connect
    **self.kwargs)
TypeError: __init__() got an unexpected keyword argument 'endpoint_url'
Run Code Online (Sandbox Code Playgroud)

我还尝试过将 kwargs 作为参数传递config_kwargss3_additional_kwargs出现类似的错误。

我可以验证boto3是否正在使用以下内容:

client = boto3.client("s3",
        aws_access_key_id=AWS_ACCESS_KEY_ID,
        aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
        endpoint_url="https://s3.wasabisys.com",
        use_ssl=True,
        region_name="us-east-1", 
        api_version=None,verify=None, config=None)
Run Code Online (Sandbox Code Playgroud)

python boto3

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

用于haskel中顺序非线性优化的库?

是否有任何库用于顺序非线性优化,具有上限和下限,以及不等式约束,这些库是用Haskell编写的或可以从Haskell轻松调用的?

haskell nonlinear-optimization

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

将功能类型打印到没有ghci的控制台

有打印功能或表达类型的命令行编译的方法Haskell程序,就像如何ghci具有:t可打印出的类型?

haskell ghc

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

如何使用PySpark从日常文件加载滚动窗口?

我有大量相当大的日常文件存储在博客存储引擎(S3,Azure datalake exc .. exc ..)中data1900-01-01.csv, data1900-01-02.csv,....,data2017-04-27.csv.我的目标是预先形成滚动的N天线性回归,但我遇到了数据加载方面的问题.我不确定如何在没有嵌套RDD's. 的情况下执行此操作.每个.csv文件的架构都是相同的.

换句话说,对于每个日期d_t,我都需要数据x_t并加入数据(x_t-1, x_t-2,... x_t-N).

如何使用PySpark加载这些日常文件的N日窗口?我能找到的所有PySpark示例似乎都是从一个非常大的文件或数据集加载的.

这是我当前代码的一个示例:

dates = [('1995-01-03', '1995-01-04', '1995-01-05'), ('1995-01-04', '1995-01-05', '1995-01-06')]

p = sc.parallelize(dates)
def test_run(date_range):
    dt0 = date_range[-1] #get the latest date
    s = '/daily/data{}.csv'
    df0 = spark.read.csv(s.format(dt0), header=True, mode='DROPMALFORM')
    file_list = [s.format(dt) for dt in date_range[:-1]] # Get a window of trailing dates
    df1 = spark.read.csv(file_list, header=True, mode='DROPMALFORM')
    return 1

p.filter(test_run) 

p.map(test_run) #fails with same error as …
Run Code Online (Sandbox Code Playgroud)

csv pandas apache-spark pyspark

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

使用参数包装来自外部库的装饰器 - 使缓存可选

我正在使用该cachetools库,我想包装该库中的装饰器,并添加一个类 self 参数以在类级别 ee 上启用/禁用缓存MyClass(enable_cache=True)

一个示例用法如下:

class MyClass(object):
    def __init__(self, enable_cache=True):
        self.enable_cache = enable_cache
        self.cache = cachetools.LRUCache(maxsize=10)
    
    @cachetools.cachedmethod(operator.attrgetter('cache'))
    def calc(self, n):
        return 1*n
Run Code Online (Sandbox Code Playgroud)

我不确定如何将缓存保留为共享自类对象,并允许使用此库在我自己的包装装饰器中使用enable_cache 标志。

python caching decorator wrapper

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