小编Bur*_*ing的帖子

将列表与元组列表组合在一起

l1 = [1, 2, 3, 4]
l2 = [(10, 20), (30, 40), (50, 60), (70, 80)]

>>> print(list(zip(l1, l2)))

[(1, (10, 20)), (2, (30, 40)), (3, (50, 60)), (4, (70, 80))]
Run Code Online (Sandbox Code Playgroud)

但是,我希望它只是一个包含四个元组的列表:

[(1, 10, 20), (2, 30, 40), (3, 50, 60), (4, 70, 80)]
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

>>> print(list(zip(l1, *l2)))

[(1, 10, 30, 50, 70), (2, 20, 40, 60, 80)]
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

如何使用元组列表或列表列表压缩列表?

python list

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

AttributeError:尝试在Flask中发送邮件时,'NoneType'对象没有属性'app'

我正在按照烧瓶教程练习做烧瓶邮件,但我遇到了一些似乎是个bug的东西.我不明白发生了什么?

这是我的代码:

def send_email(to, subject, template, **kwargs):
    msg = Message(app.config['FLASKY_MAIL_SUBJECT_PREFIX'] + subject,
                  sender=app.config['FLASKY_MAIL_SENDER'], recipients=[to])
    msg.body = render_template(template + '.txt', **kwargs)
    msg.html = render_template(template + '.html', **kwargs)
    mail.send(msg)
Run Code Online (Sandbox Code Playgroud)

这是bug的信息:

Traceback (most recent call last):
  File "ch6_1.py", line 64, in <module>
    send_email(app ,MAIL_USERNAME, "test mail", "hello")
  File "ch6_1.py", line 50, in send_email
    msg.body = render_template(template + '.txt', **kwargs)
  File "D:\INSTALL\Python\lib\site-packages\flask\templating.py", line 126, in r
ender_template
    ctx.app.update_template_context(context)
AttributeError: 'NoneType' object has no attribute 'app'
Run Code Online (Sandbox Code Playgroud)

python flask flask-mail

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

从python列表中获取一个字典

我有一个列表my_list = ['a', 'b', 'c', 'd'],我需要创建一个看起来像的字典

{ 'a': ['a', 'b', 'c', 'd'], 
  'b': ['b', 'a', 'c', 'd'], 
  'c': ['c', 'a', 'b', 'd'], 
  'd': ['d', 'a', 'b', 'c'] }
Run Code Online (Sandbox Code Playgroud)

每个元素作为其值是列表,但第一个元素本身.

这是我的代码

my_list = ['1', '2', '3', '4']
my_dict=dict()

for x in my_list:        
    n = my_lst[:]
    n.remove(x)
    n= [x] + n[:]
    my_dict[x] = n

print my_dict
Run Code Online (Sandbox Code Playgroud)

这使

{'1': ['1', '2', '3', '4'], 
 '3': ['3', '1', '2', '4'], 
 '2': ['2', '1', '3', '4'], 
 '4': ['4', '1', '2', '3']}
Run Code Online (Sandbox Code Playgroud)

按要求.但我认为这不是最佳的做法.任何优化的帮助将不胜感激.

python dictionary list python-2.7

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

Python列表分组和总和

假设我有以下列表:

[{'name': 'Amy', 'count': 1}, {'name': 'Amy', 'count': 2}, {'name': 'Peter', 'count': 1}]
Run Code Online (Sandbox Code Playgroud)

我怎么能将它分组并计算总数以获得以下结果:

[{'name': 'Amy', 'count': 3}, {'name': 'Peter', 'count': 1}]
Run Code Online (Sandbox Code Playgroud)

谢谢.

python dictionary list

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

Django:我如何使用auth_user表的is_active?

我不知道什么是使用param的好时机.

djangoproject描述如下:

布尔.指定是否应将此用户帐户视为活动帐户.我们建议您将此标志设置为False而不是删除帐户; 这样,如果您的应用程序有任何外键给用户,外键不会中断.

这不一定控制用户是否可以登录.验证后端不需要检查is_active标志,默认后端不需要.如果要拒绝基于is_active为False的登录,则由您自己在登录视图或自定义身份验证后端中进行检查.但是,login()视图使用的AuthenticationForm(默认值)会执行此检查,权限检查方法(如has_perm()和Django admin中的身份验证)也会执行此检查.对于非活动用户,所有这些函数/方法都将返回False.

readthedocs描述如下:

Authorization for inactive users

非活动用户是经过身份验证但其属性is_active设置为False的用户.但这并不意味着他们无权做任何事情.例如,他们可以激活他们的帐户.

权限系统中对匿名用户的支持允许匿名用户具有执行某些操作的权限,而非活动身份验证用户则无权执行某些操作.

不要忘记在您自己的后端权限方法中测试用户的is_active属性.

任何人都可以给出一些让我知道param需要注意或如何使用它的例子.

python authentication django django-models python-2.7

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

Python将日期字符串转换为datetime

我试图将日期字符串转换为Python但得到错误 -

串: '1986-09-22T00:00:00'

dob_python = datetime.strptime('1986-09-22T00:00:00' , '%Y-%m-%d%Z%H-%M-%S').date()
Run Code Online (Sandbox Code Playgroud)

错误:-

ValueError: time data '1986-09-22T00:00:00' does not match format '%Y-%m-%d%Z%H-%M-%S'
Run Code Online (Sandbox Code Playgroud)

python datetime

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

为什么 python 中 dict 比 if-else 快?

我尝试比较 dict 和 if-else 哪个更快,如下所示。

d = {
    str  : lambda x: "'%s'" % str(x),
    int  : lambda x: str(x),
    float: lambda x: str(x),
}
items = ['a', 'b', 'c', 1, 2, 3, 4, 5, 1.0]

def use_dict():
    r = []
    for i in items:
        r.append(d[type(i)](i))
    return r

def use_if():
    r = []
    for i in items:
        if isinstance(i, str):
            r.append("'%s'" % str(i))
        elif isinstance(i, (int, float)):
            r.append(str(i))
    return r

if __name__ == '__main__':

    from timeit import timeit

    print 'use_dict:', …
Run Code Online (Sandbox Code Playgroud)

python performance dictionary if-statement python-2.7

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

以"XX到XX"的格式打印嵌套列表

我是python的新手,所以我一直试图找出如何以下面的格式打印以下列表.我试图让它们通过索引但它似乎没有成功.

所以我有一个元组列表,我需要以下列格式打印出来:

1. A1 to B1
2. C1 to D2 , C1 to B2 
Run Code Online (Sandbox Code Playgroud)

这是我需要转换为该格式的以下列表.

[['A1', 'B1'], ['C1', 'D2', 'C1', 'B2', 'C1', 'E3', 'C1', 'A3', 'C1', 'F4', 'C1', 'G5', 'C1', 'H6'], ['E1', 'D1', 'E1', 'F2', 'E1', 'D2', 'E1', 'G3', 'E1', 'H4']]
Run Code Online (Sandbox Code Playgroud)

python list

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

切片后对Django QuerySet进行排序

Django文档说:

...即使切片未评估的QuerySet返回另一个未评估的QuerySet,也不允许进一步修改它(例如,添加更多过滤器或修改排序),因为这不能很好地转换为SQL,也不会有明确的含义.

从这里我认为这意味着做这样的事情:

q1 = Pizza.objects.all()[0:5]
q2 = q1.order_by(...)
Run Code Online (Sandbox Code Playgroud)

不被允许.我有两个问题:

  • 为什么文档说这个?我可以理解,也许它不能很好地转化为SQL,但对我来说,"明确的含义"是你获得前5个披萨对象,然后你按照任何标准订购它们.
  • 如果这样做会怎么样?我已经做了一段时间,代码是正确的(但很慢).它是否实际上反向执行 - 命令所有Pizza对象,然后得到前5个?

python sql django orm

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

在python中用逗号分割字符串

我有一个包含的csv文件

"VANS, PASSENGER TYPE",CHEVROLET,H1500 EXPRESS AWD,5.3,8,Auto(L4),4,832,9,12,10,11.5,16.2,13.2268,E,,,,,,,,,,3900,310-340,CLKUP ,2,15,30-Jun-07,DERIVED
Run Code Online (Sandbox Code Playgroud)

我所要做的就是用逗号分隔,只做我当前的解决方案的问题是第一个条目碰巧"VANS, PASSENGER TYPE"有一个逗号,但我对分裂它不感兴趣.

目前我正在做这样的事情

with open("file.txt", "r") as ins:
   foo = ins.split(",")
Run Code Online (Sandbox Code Playgroud)

python regex csv readfile

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