小编Pav*_*sov的帖子

python dict.update与下标一起添加单个键/值对

每学期我至少有一个Python学生使用dict.update()来添加单个键/值对,即:

mydict.update({'newkey':'newvalue'})
Run Code Online (Sandbox Code Playgroud)

代替

mydict['newkey'] = 'newvalue'
Run Code Online (Sandbox Code Playgroud)

我不教这种方法,我不知道他们在哪里找到这个例子,但是我告诉他们不要这样做,因为效率较低(可能会创建一个新的2元素字典)并且因为它是非标准的.

老实说,我可以理解使用可见方法而不是这种语法的愿望 - 它可能与其他方法调用更加一致.但我觉得它看起来像一个新手的方法.

在这一点上,任何人都有任何智慧吗?

python

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

jinja:TemplateSyntaxError:期望令牌'name',得到'string'

在Flask应用程序中有两个文件:

base.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <link rel="stylesheet" href="../static/main.css" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.1.1/css/bootstrap.min.css">
    <title>Title</title>
</head>
<body>
<div id="content">
    {% marker "content" %}
</div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

upload.html,延伸 base.html

{% extends "base.html" %}

{% block "content " %}
<title>Upload new File</title>
<h1>Upload new File</h1>
<form action="" method=post enctype=multipart/form-data>
    <p><input type=file name=file>
        <input type=submit value=Upload>
</form>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

我在视图中调用后者:return render_template('upload.html' ),我收到一个错误:

jinja2.exceptions.TemplateSyntaxError
TemplateSyntaxError: expected token 'name', got 'string'
Run Code Online (Sandbox Code Playgroud)

python jinja2 flask

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

将单项列表转换为整数

我被要求接受整数列表(x),在列表中添加第一个值和最后一个值,然后返回一个带和的整数.我已经使用以下代码来做到这一点,但我遇到的问题是,当我尝试评估总和时,它实际上是一个项目列表而不是整数.我试图将它转换为int但我似乎无法让它工作.

def addFirstAndLast(x):  
    lengthOfList = len(x)  
    firstDigit = x[0:1]  
    lastDigit = x[lengthOfList:lengthOfList-1]  
    sum = firstDigit + lastDigit  
    return sum  
Run Code Online (Sandbox Code Playgroud)

python

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

站点匹配查询不存在.查找参数为{'pk':3}

Environment:

Request Method: GET
Django Version: 1.5
Python Version: 2.7.3
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'allauth',
 'allauth.account',
 'allauth.socialaccount',
 'allauth.socialaccount.providers.facebook',
 'allauth.socialaccount.providers.google',
 'allauth.socialaccount.providers.linkedin',
 'django.contrib.admin',
 'django.contrib.admindocs')


Installed Middleware:

('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:

File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
  115.                         response = callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py" in view
  68.             return self.dispatch(request, *args, **kwargs)
File "/var/www/sampleapp/allauth/account/views.py" in dispatch
  41.                                                                     **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py" in dispatch
  86.         return handler(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/views/generic/edit.py" in get
  155.         return self.render_to_response(self.get_context_data(form=form))
File "/var/www/sampleapp/allauth/account/views.py" in get_context_data
  67. …
Run Code Online (Sandbox Code Playgroud)

django

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

排序一个列表以匹配python中的另一个

假设我有这些列表:

ids = [4, 3, 7, 8]
objects = [
             {"id": 7, "text": "are"},
             {"id": 3, "text": "how"},
             {"id": 8, "text": "you"},
             {"id": 4, "text": "hello"}
          ]
Run Code Online (Sandbox Code Playgroud)

我怎样objects才能对它们的ID顺序进行排序ids?即得到这个结果:

objects = [
             {"id": 4, "text": "hello"},
             {"id": 3, "text": "how"},
             {"id": 7, "text": "are"},
             {"id": 8, "text": "you"}
          ]
Run Code Online (Sandbox Code Playgroud)

python sorting list

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

如何在Python中将fibonacci序列打印到第n个数字?

我有一份我难以理解的家庭作业.我正在尝试编写一个程序,在第n个数字上输出斐波纳契数列.这是我到目前为止所拥有的:

def fib():
   n = int(input("Please Enter a number: "))

   if n == 1:
      return(1)
   elif n == 0:   
      return(0)            
   else:                      
      return (n-1) + (n-2)


mylist = range[0:n]
print(mylist)
Run Code Online (Sandbox Code Playgroud)

我想我可以使用单独的函数,但我无法弄清楚如何传递计算斐波纳契数列的参数.然后下一步是打印出该数字的数字序列.

python parameter-passing fibonacci

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

Python:通过键的一部分对字典中的项进行排序?

假设我有一个国王字典,其名称中包含罗马数字作为键,罗马数字以整数形式表示为值.

d = {'Zemco III': 3, 'Usamec XL': 40, 'Usamec VII': 7, 'Robert VIII': 8, 'Usamec XLII': 42, 'Mary XXIV': 24, 'Robert III': 3, 'Robert XV': 15, 'Usamec XLIX': 49}

我想从最古老到最年轻的列表排序,那就是Usamec XLII应该出现在Usamec XLIX之前.我还想按字母顺序对列表进行排序,即Usamec XLII应该出现在Zemco III之前.

我的方法是首先按名称排序,然后按罗马数字值排序:

x = sorted(d.items(),key=operator.itemgetter(0))
y = sorted(x,key=operator.itemgetter(1))
Run Code Online (Sandbox Code Playgroud)

但是,因为罗马数字是键的一部分,我的字母排序不能按预期工作.我的问题是,我可以通过密钥的一部分对字典进行排序,例如,如果我的密钥是Zemco III,我可以使用key.split()[0]而不是整个密钥以某种方式对我的项目进行排序吗?谢谢!

python sorting dictionary key

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

Python乘法范围

我需要获取从范围(15,20,1)派生的数字列表,每个数字都是 15*x*100:

X   Y
15  100
16  93,75
17  88,2352941176
18  83,3333333333
19  78,9473684211
20  75
Run Code Online (Sandbox Code Playgroud)

结果应该是一个包含两位小数的 y 数组。

我尝试使用 python,花了一段时间才发现它只能处理整数。然后我尝试了 numpy,但我仍然没有到达那里。我是个傻瓜,对这个问题的愚蠢感到抱歉,但在尝试了两个小时后,我决定发布一个问题。

最好的,梅斯

python arrays range

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

Python - 基于字符串的导入模块然后传递参数

我搜索了网站和这个网站,无法找到这个问题的答案.我确定它在我面前的某个地方,但无法找到它.

我需要能够基于字符串导入模块.然后在传递参数时在该模块中执行函数.

我可以基于字符串导入然后使用eval()执行但我知道这不是处理此问题的最佳方法.我似乎也不能以这种方式传递论据.

我将根据字符串设置的当前模块名为TestAction.py,位于名为Tasks的文件夹中.这是TestAction.py的内容:

def doSomething(var):
    print var
Run Code Online (Sandbox Code Playgroud)

这是我执行导入TestAction并执行的代码.

module = "Tasks.TestAction"
import Tasks
mymod = __import__(module)
eval(module + ".doSomething()")
Run Code Online (Sandbox Code Playgroud)

如何使这个代码#1不使用eval(),#2将var参数传递给doSomething()

提前致谢!

python

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

如何从python中的csv读取编码字符串的数据帧

假设我读了一个html网站,我得到了一个名单,例如:'Amiel,Henri-Frédéric'.

为了获取名称列表,我使用以下代码解码html:

f = urllib.urlopen("http://xxx.htm")
html = f.read()
html=html.decode('utf8')
t.feed(html)
t.close()
lista=t.data
Run Code Online (Sandbox Code Playgroud)

此时,变量lista包含一个名称列表,如:

[u'Abatantuono,Diego',...,u'Amiel,Henri-Frédéric']

现在我想:

  1. 将这些名称放在DataFrame中;
  2. 将DataFrame保存在csv文件中;
  3. 通过DataFrame读取Python中的csv

为简单起见,我们只考虑上面的名称来完成步骤1到3.我将使用以下代码:

name=u'Amiel, Henri-Fr\xe9d\xe9ric'
name=name.encode('utf8')
array=[name]
df=pd.DataFrame({'Names':array})
df.to_csv('names')
uni=pd.read_csv('names')
uni #trying to read the csv file in a DataFrame
Run Code Online (Sandbox Code Playgroud)

此时我收到以下错误:

UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 67: invalid continuation byte      
Run Code Online (Sandbox Code Playgroud)

如果我用以下代码替换上面代码的最后一行:

print uni
Run Code Online (Sandbox Code Playgroud)

我可以阅读DataFrame,但我不认为这是处理这个问题的正确方法.

我向其他用户发布了很多关于这个论点的问题,但我没有解决这个问题.

python utf-8 pandas

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