我觉得这很简单,我接近解决方案,但我已经堆积,无法在互联网上找到建议.
我的列表看起来像:
my_list = ['name1@1111', 'name2@2222', 'name3@3333']
Run Code Online (Sandbox Code Playgroud)
通常,列表的每个元素都具有以下形式:namex@some_number.
我想用漂亮的方式制作字典,那就是key = namex和value = some_number.我可以通过以下方式完成:
md = {}
for item in arguments:
md[item.split('@')[0]] = item.split('@')[1]
Run Code Online (Sandbox Code Playgroud)
但我想在一行中完成它,列表理解或其他.我试过跟随,我想我离我想要的不远.
md2 = dict( (k,v) for k,v in item.split('@') for item in arguments )
Run Code Online (Sandbox Code Playgroud)
但是,我收到了错误:ValueError: too many values to unpack.不知道如何摆脱这种局面.
这是我模拟Levy运动的小脚本:
clear all;
clc; close all;
t = 0; T = 1000; I = T-t;
dT = T/I; t = 0:dT:T; tau = T/I;
alpha = 1.5;
sigma = dT^(1/alpha);
mu = 0; beta = 0;
N = 1000;
X = zeros(N, length(I));
for k=1:N
L = zeros(1,I);
for i = 1:I-1
L( (i + 1) * tau ) = L(i*tau) + stable2( alpha, beta, sigma, mu, 1);
end
X(k,1:length(L)) = L;
end
q = 0.1:0.1:0.9;
quant = qlines2(X, q, …Run Code Online (Sandbox Code Playgroud) 我已经用1.10样式编写了自定义Django中间件的代码,类似于:
class MyMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
# some initialization stuff here
def __call__(self, request):
# Code executed before view functions are called.
# Purpose of this middeware is to add new attribute to request
# In brief:
request.new_attribute = some_function_returning_some_object()
response = self.get_response(request)
# Code to be executed for each request/response after
# the view is called.
return response
Run Code Online (Sandbox Code Playgroud)
请注意,该中间件正受到威胁,因为它是一个单独的Python模块,不属于我的项目中的任何特定应用程序,而是驻留在外部,并像其他任何软件包一样通过pip安装。它本身不起作用,只有安装在Django应用中才起作用。
它工作正常,但是,我想对其进行测试。到目前为止,我所做的是这样的my_tests.py:
from my_middleware_module import MyMiddleware
# some @patches
def test_mymiddleware():
request = Mock() …Run Code Online (Sandbox Code Playgroud) 我想绘制一个简单方程的方向场:
\n\ny\' = 3 \xe2\x88\x92 2y\nRun Code Online (Sandbox Code Playgroud)\n\n我在这里发现了类似的Matlab问题(1.3)。但我不知道如何将其重写为python。我最后的尝试是:
\n\nfrom matplotlib.pyplot import cm\nimport matplotlib.pyplot as plt\nimport numpy as np\n\nnx, ny = .3, .3\nx = np.arange(-3, 3, nx)\ny = np.arange(-2, 2, ny)\nX, Y = np.meshgrid(x, y)\n\ndy = X + np.sin(Y)\ndx = np.ones((10,10))\n\nplot2 = plt.figure()\nplt.quiver(X, Y, dx, dy, \n color=\'Teal\', \n headlength=7)\n\nplt.title(\'Quiver Plot, Single Colour\')\nplt.show(plot2)\nRun Code Online (Sandbox Code Playgroud)\n\n但我收到错误:
\n\nbuiltins.ValueError: operands could not be broadcast together with shapes (100,) (280,) \nRun Code Online (Sandbox Code Playgroud)\n\n我虽然这会很简单,但是经过几个小时的搜索如何绘制一个简单的方向场后,我感到非常沮丧。
\nPython 3 中是否有任何方法可以替换英文字母的通用语言特定字符?
例如,我有 function get_city(IP),它返回与给定 IP 连接的城市名称。它连接到外部数据库,所以我不能改变它的编码方式,我只是从数据库中获取价值。
我想做类似的事情:
city = "?eské Bud?jovice"
city = clear_name(city)
print(city) #should return "Ceske Budejovice"
Run Code Online (Sandbox Code Playgroud)
在这里我使用捷克语,但总的来说它应该适用于任何非亚洲语言。
我觉得我错过了一些非常基本的点,但无法解决这个问题。
假设我有这样的模型:
class Person(models.Model):
first_name = models.CharField(max_length=256, blank=True)
# this is weird field, but needed for my usecase
last_name = models.WeirdCustomField(max_length=256, blank=True)
Run Code Online (Sandbox Code Playgroud)
并且有一个表格,我想对其进行一些自定义(评论):
class PersonForm(forms.ModelForm):
class Meta:
model = Address
# I want to override 'last_name' field, so exclude it here
exclude = ['last_name']
# And add additional field
my_field = ChoiceField(choices=list_of_choicec)
last_name = forms.CharField()
def __init__(self, *args, **kwargs):
last_name = kwargs.pop('last_name', None)
my_field = kwargs.pop('my_field', None)
super(PersonForm, self).__init__(*args, **kwargs)
self.fields['last_name'] = last_name
self.fields['my_field'] = my_field
Run Code Online (Sandbox Code Playgroud)
现在,在shell(毕竟进口......)
person …Run Code Online (Sandbox Code Playgroud) 我在matlab中有一些代码,我想重写成python.它是一个简单的程序,它计算一些分布并以双对数刻度绘制它.
我遇到的问题是计算cdf.这是matlab代码:
for D = 1:10
delta = D / 10;
for k = 1:n
N_delta = poissrnd(delta^-alpha,1);
Y_k_delta = ( (1 - randn(N_delta)) / (delta.^alpha) ).^(-1/alpha);
Y_k_delta = Y_k_delta(Y_k_delta > delta);
X(k) = sum(Y_k_delta);
%disp(X(k))
end
[f,x] = ecdf(X);
plot(log(x), log(1-f))
hold on
end
Run Code Online (Sandbox Code Playgroud)
在matlab中,我可以简单地使用:
[f,x] = ecdf(X);
Run Code Online (Sandbox Code Playgroud)
在点x获得cdf(f).这是它的文档.
在python中它更复杂:
import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt
from statsmodels.distributions.empirical_distribution import ECDF
alpha = 1.5
n = 1000
X = []
for delta …Run Code Online (Sandbox Code Playgroud) 最近我开始使用Pycharm(我已经安装了edu版本,希望会有更少的"你不能没有的功能").目前我正在努力解决两个问题:
1)当我打字时[,pycharm自动完成我的支架[].不,如果我想要[]输入"[]",如果我想要[我只想输入"[".类似于任何其他'括号',如" ' [ { (等.
2)打字if-else循环:
if something:
something more
#now want else, so I type...
else
Run Code Online (Sandbox Code Playgroud)
我想知道Pycharm是否足够智能自动else输入前一个缩进,在同一级别上if?
也许有众所周知的选择,但英语不是我的母语,所以我不知道如何命名并在互联网上找到.或者也许我以某种方式禁用了这些功能?
我正在遵循使用python学习TDD的指南。在某些时候,在进行迁移后,命令的输出python3 functional_tests.py应该是(根据本书):
self.fail('Finish the test!')
AssertionError: Finish the test!
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
selenium.common.exceptions.InvalidSelectorException: Message: Given css selector expression "tr" is invalid: TypeError: can't access dead object
Run Code Online (Sandbox Code Playgroud)
在尝试第二次(以及更多次)之后:
selenium.common.exceptions.StaleElementReferenceException: Message: The element reference is stale. Either the element is no longer attached to the DOM or the page has been refreshed.
Run Code Online (Sandbox Code Playgroud)
我一直在谷歌搜索并搜索类似的问题,但没有找到可以帮助我解决问题的问题。
我正在使用 geckodriver,并将它的路径添加到PATH.
Django==1.8.7
selenium==3.0.2
Mozilla Firefox 50.0.2
(X)Ubuntu 16.04
Run Code Online (Sandbox Code Playgroud)
我应该切换到 Chrome 吗?这不是微不足道的,它需要我一些时间,但它可以工作吗?更像 Firefox 还是 Selenium?我认为这与代码无关 - 我为第 5 章克隆了repo,并且发生了同样的崩溃。
python ×7
django ×3
matlab ×3
matplotlib ×2
numpy ×2
decoding ×1
dictionary ×1
django-1.10 ×1
django-1.11 ×1
encoding ×1
forms ×1
geckodriver ×1
model ×1
optimization ×1
performance ×1
pycharm ×1
scipy ×1
selenium ×1
split ×1
statistics ×1
string ×1
string-split ×1
testing ×1