小编Phi*_*lip的帖子

python insert vs append

我已经编写了基本的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好得多,因为我之前通过插入数字直接执行反向操作.但是,所用的时间不然.我无法理解为什么后一种方法需要更多时间来执行,即使该方法看起来更优雅.有没有人对此有任何解释?

python

17
推荐指数
3
解决办法
3万
查看次数

从Android上的Google Place API获取城市名称和邮政编码

我正在使用适用于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)

android city postal-code google-places-api

17
推荐指数
4
解决办法
3万
查看次数

collections.defaultdict是线程安全的吗?

我根本没有使用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 defaultdict python-collections

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

如何在python中使用linkedin API

我尝试了很多方法,但似乎都没有.帮助我使用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)

python api linkedin

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

select2:以编程方式控制占位符

我想在事件上更改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)

这看起来很基本,但我很难过.

我在文档中找不到任何内容.我在找错了地方吗?

jquery placeholder jquery-select2

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

如何通过python将python字典存储到mysql DB中

我试图通过将字典转换为字符串,然后尝试插入,将以下字典存储到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行")

有什么建议或帮助吗?

python mysql dictionary

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

mysql WHERE IN数组字符串/用户名

码:

$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 ......"等单引号包裹.如何用单引号包装每个用户名?

php mysql arrays

11
推荐指数
4
解决办法
7万
查看次数

PyCharm:逐行调试?

我在我的Python IDE中使用PyCharm(社区版).我希望程序以逐行方式进行调试.所以我不想把每一行都设置为断点......有没有办法可以做到这一点?

python pycharm

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

PyMySQL插入NULL或String

我试图插入一个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 mysql pymysql

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

python请求模块记录编码

我正在使用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 logging python-requests

11
推荐指数
2
解决办法
1945
查看次数