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)
所以我的问题是:
如何使用元组列表或列表列表压缩列表?
我正在按照烧瓶教程练习做烧瓶邮件,但我遇到了一些似乎是个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) 我有一个列表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)
按要求.但我认为这不是最佳的做法.任何优化的帮助将不胜感激.
假设我有以下列表:
[{'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)
谢谢.
我不知道什么是使用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但得到错误 -
串: '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) 我尝试比较 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的新手,所以我一直试图找出如何以下面的格式打印以下列表.我试图让它们通过索引但它似乎没有成功.
所以我有一个元组列表,我需要以下列格式打印出来:
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) 在Django文档说:
...即使切片未评估的QuerySet返回另一个未评估的QuerySet,也不允许进一步修改它(例如,添加更多过滤器或修改排序),因为这不能很好地转换为SQL,也不会有明确的含义.
从这里我认为这意味着做这样的事情:
q1 = Pizza.objects.all()[0:5]
q2 = q1.order_by(...)
Run Code Online (Sandbox Code Playgroud)
不被允许.我有两个问题:
Pizza对象,然后得到前5个?我有一个包含的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 ×10
list ×4
dictionary ×3
python-2.7 ×3
django ×2
csv ×1
datetime ×1
flask ×1
flask-mail ×1
if-statement ×1
orm ×1
performance ×1
readfile ×1
regex ×1
sql ×1