我已经编写了基本的python片段,首先在列表中插入值然后反转它们.我发现insert和append方法之间的执行速度差异很大.
小片1:
L = []
for i in range(10**5):
L.append(i)
L.reverse()
Run Code Online (Sandbox Code Playgroud)
执行此操作所需的时间:
real 0m0.070s
user 0m0.064s
sys 0m0.008s
Run Code Online (Sandbox Code Playgroud)
摘录2:
l = []
for i in range(10**5):
l.insert(0,i)
Run Code Online (Sandbox Code Playgroud)
执行时间:
real 0m5.645s
user 0m5.516s
sys 0m0.020s
Run Code Online (Sandbox Code Playgroud)
我希望代码片段2的性能比snippet1好得多,因为我之前通过插入数字直接执行反向操作.但是,所用的时间不然.我无法理解为什么后一种方法需要更多时间来执行,即使该方法看起来更优雅.有没有人对此有任何解释?
我正在使用适用于Android的Google Place API并使用自动填充功能
一切正常,但是当我得到这里显示的结果时,我没有城市和邮政编码信息.
private ResultCallback<PlaceBuffer> mUpdatePlaceDetailsCallback
= new ResultCallback<PlaceBuffer>() {
@Override
public void onResult(PlaceBuffer places) {
if (!places.getStatus().isSuccess()) {
// Request did not complete successfully
Log.e(TAG, "Place query did not complete. Error: " + places.getStatus().toString());
return;
}
// Get the Place object from the buffer.
final Place place = places.get(0);
// Format details of the place for display and show it in a TextView.
mPlaceDetailsText.setText(formatPlaceDetails(getResources(), place.getName(),
place.getId(), place.getAddress(), place.getPhoneNumber(),
place.getWebsiteUri()));
Log.i(TAG, "Place details …Run Code Online (Sandbox Code Playgroud) 我根本没有使用Python中的线程,并且认为这个问题是一个完全陌生的问题.
我想知道是否defaultdict是线程安全的.让我来解释一下:
我有
d = defaultdict(list)
Run Code Online (Sandbox Code Playgroud)
默认情况下会创建缺失键列表.假设我有多个线程同时开始执行此操作:
d['key'].append('value')
Run Code Online (Sandbox Code Playgroud)
最后,我应该最终结束['value', 'value'].但是,如果defaultdict不是线程安全的,如果线程1在检查之后和之前 产生线程2,它将导致交错,而另一个线程将创建列表并且可能附加.if 'key' in dictd['key'] = default_factory()d['key']'value'
然后当线程1再次执行时,它将继续从中d['key'] = default_factory()破坏现有的列表和值,我们将最终进入['key'].
我查看了defaultdict的CPython源代码.但是,我找不到任何锁或互斥锁.我想只要记录在案,它就不是线程安全的.
有些人昨晚在IRC上表示Python上有GIL,所以它在概念上是线程安全的.有人说线程不应该在Python中完成.我很困惑.想法?
我尝试了很多方法,但似乎都没有.帮助我使用python与linkedin建立连接.我有所有的代币.我有python 2.7.5.请发布建立连接的基本代码示例并获取用户名.
下面,我已经完成了角色的角色,例如示例,但它不起作用.
https://github.com/ozgur/python-linkedin <---这是我得到api的地方,我完全复制了它.见下文:
CONSUMER_KEY = '9puxXXXXXXXX' # This is api_key
CONSUMER_SECRET = 'brtXoXEXXXXXXXX' # This is secret_key
USER_TOKEN = '27138ae8-XXXXXXXXXXXXXXXXXXXXXXXXXXX' # This is oauth_token
USER_SECRET = 'ca103e23XXXXXXXXXXXXXXXXXXXXXXXXXXX' # This is oauth_secret
from linkedin import linkedin
# Define CONSUMER_KEY, CONSUMER_SECRET,
# USER_TOKEN, and USER_SECRET from the credentials
# provided in your LinkedIn application
# Instantiate the developer authentication class
authentication = linkedin.LinkedInDeveloperAuthentication(CONSUMER_KEY, CONSUMER_SECRET,
USER_TOKEN, USER_SECRET,
RETURN_URL, linkedin.PERMISSIONS.enums.values())
# Pass it in to the app...
application = linkedin.LinkedInApplication(authentication)
# Use …Run Code Online (Sandbox Code Playgroud) 我想在事件上更改select2增强控件上的占位符.
所以我有这个......
<select id="myFoo" placeholder="Fight some foo...">
Run Code Online (Sandbox Code Playgroud)
......然后增强:
init: function(){
$('#myFoo').select2();
},
Run Code Online (Sandbox Code Playgroud)
...所以现在它有正确的占位符.
但后来我希望它对事件作出反应并清除占位符......
someButtonPress: function(){
// $('#myFoo').placeholder("");
// $('#myFoo').attr('placeholder', "");
// $('#myFoo').select2('placeholder',"");
// $('#myFoo').select2({placeholder:""});
// none of these work
}
Run Code Online (Sandbox Code Playgroud)
这看起来很基本,但我很难过.
我在文档中找不到任何内容.我在找错了地方吗?
我试图通过将字典转换为字符串,然后尝试插入,将以下字典存储到mysql DB中,但我收到以下错误.如何解决这个问题,还是有其他方法将字典存储到mysql DB中?
dic = {'office': {'component_office': ['Word2010SP0', 'PowerPoint2010SP0']}}
d = str(dic)
# Sql query
sql = "INSERT INTO ep_soft(ip_address, soft_data) VALUES ('%s', '%s')" % ("192.xxx.xx.xx", d )
soft_data is a VARCHAR(500)
Run Code Online (Sandbox Code Playgroud)
错误:执行异常(1064,"您的SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册,以便在'office'附近使用正确的语法:{'component_office':['Word2010SP0','PowerPoint2010SP0 '在第1行")
有什么建议或帮助吗?
码:
$friendsArray = array("zac1987", "peter", "micellelimmeizheng1152013142");
$friendsArray2 = join(', ',$friendsArray);
$query120 = "SELECT picturemedium FROM users WHERE username IN ('$friendsArray2')";
echo $query120;
Run Code Online (Sandbox Code Playgroud)
这是输出:
SELECT picturemedium FROM users WHERE username IN ('zac1987, peter, micellelimmeizheng1152013142')
Run Code Online (Sandbox Code Playgroud)
它失败了,因为用户名没有被"zac1987","peter","mice ......"等单引号包裹.如何用单引号包装每个用户名?
我在我的Python IDE中使用PyCharm(社区版).我希望程序以逐行方式进行调试.所以我不想把每一行都设置为断点......有没有办法可以做到这一点?
我试图插入一个title可以是NULL字符串的PyMySQL 字段().但它不起作用.
query = """
INSERT INTO `chapter` (title, chapter, volume)
VALUES ("%s", "%s", %d)
"""
cur.execute(query % (None, "001", 1))
cur.execute(query % ("Title", "001", 1))
Run Code Online (Sandbox Code Playgroud)
此代码插入None数据库.如果我删除第一个周围的双引号%s,它会抛出一个错误:
pymysql.err.InternalError: (1054, "Unknown column 'None' in 'field list'")
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能插入NULL?
我正在使用python并请求module == 2.18.4
在使用请求抓取某些数据时,我使用了日志记录模块进行调试.
我希望日志看起来像这样:
[DEBUG] 2018-01-25 03:15:36,940 http://localhost:8888 "GET /aaa" 200 2290
[DEBUG] 2018-01-25 03:15:36,940 http://localhost:8888 "GET /aaa" 200 2290
[DEBUG] 2018-01-25 03:15:36,940 http://localhost:8888 "GET /aaa" 200 2290
Run Code Online (Sandbox Code Playgroud)
但我明白了:
[DEBUG] 2018-01-25 03:15:36,940 http://localhost:8888 "GET /aaa" 200 2290
[DEBUG] 2018-01-25 03:15:36,974 EUC-JP Japanese prober hit error at byte 1765
[DEBUG] 2018-01-25 03:15:36,990 EUC-KR Korean prober hit error at byte 1765
[DEBUG] 2018-01-25 03:15:36,994 CP949 Korean prober hit error at byte 1765
[DEBUG] 2018-01-25 03:15:37,009 EUC-TW Taiwan prober hit error at …Run Code Online (Sandbox Code Playgroud) python ×7
mysql ×3
android ×1
api ×1
arrays ×1
city ×1
defaultdict ×1
dictionary ×1
jquery ×1
linkedin ×1
logging ×1
php ×1
placeholder ×1
postal-code ×1
pycharm ×1
pymysql ×1