小编ste*_*tla的帖子

为什么dict.get(key)而不是dict [key]?

今天,我遇到了这个dict方法get,它给出了字典中的一个键,返回了相关的值.

这个功能用于什么目的?如果我想找到与字典中的键相关联的值,我可以这样做dict[key],它返回相同的东西:

dictionary = {"Name": "Harry", "Age": 17}
dictionary["Name"]
dictionary.get("Name")
Run Code Online (Sandbox Code Playgroud)

python dictionary

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

为变量分配函数

假设我有一个功能

def x():
    print(20)
Run Code Online (Sandbox Code Playgroud)

现在我想将函数分配给一个名为的变量y,这样如果我使用y它,它会x再次调用该函数.如果我只是做分配y = x(),它会返回None.

python

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

我可以在scikit中使用CountVectorizer - 学习计算未用于提取令牌的文档的频率吗?

我一直在和CountVectorizerscikit-learn 一起上课.

据我所知,如果以下面显示的方式使用,最终输出将包含一个包含要素计数或标记的数组.

这些令牌是从一组关键字中提取的,即

tags = [
  "python, tools",
  "linux, tools, ubuntu",
  "distributed systems, linux, networking, tools",
]
Run Code Online (Sandbox Code Playgroud)

下一步是:

from sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer(tokenizer=tokenize)
data = vec.fit_transform(tags).toarray()
print data
Run Code Online (Sandbox Code Playgroud)

我们得到的地方

[[0 0 0 1 1 0]
 [0 1 0 0 1 1]
 [1 1 1 0 1 0]]
Run Code Online (Sandbox Code Playgroud)

这很好,但我的情况有点不同.

我想以与上面相同的方式提取功能,但我不希望这些行data与从中提取功能的文档相同.

换句话说,我怎样才能得到另一组文件的计数,比方说,

list_of_new_documents = [
  ["python, chicken"],
  ["linux, cow, ubuntu"],
  ["machine learning, bird, fish, pig"]
]
Run Code Online (Sandbox Code Playgroud)

得到:

[[0 0 0 1 0 0]
 [0 1 …
Run Code Online (Sandbox Code Playgroud)

python machine-learning tf-idf scikit-learn

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

用于枚举列表的Python良好编程实践

我对Python和编程一般都很陌生,我想知道用很多逻辑运算符编写长语句是否是一个很好的编程习惯 - 例如,在for循环中.

例如,这是我创建的一个函数,它从单词中获取所有元音并返回包含这些元音的列表.

def getVowels(word):
    vowel_list = []
    index = 0
    for i in word:
        if i == "a" or i == "e" or i == "i" or i == "o" or i == "u" or i == "A" or i == "E" or i == "I" or i == "O" or i == "U":
            vowel_list.append(word[index])
        index += 1
    return vowel_list
Run Code Online (Sandbox Code Playgroud)

如您所见,if语句已经变得很长.这被认为是好的节目吗?如果不是,有没有更好的方法来编写这个功能?

python list

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

RESTful API需要查询字符串中的参数?

在设计RESTful API时,如果GET请求仅在与请求关联的特定参数时才有意义,该怎么办?参数是否应作为查询字符串传递,如果是,那么在未指定所有参数或格式不正确时该怎么办?

例如,假设我有一个Post资源,可以通过`api/posts`端点访问.每个帖子都有一个地理位置,只有在指定帖子可能所在的区域时才能检索帖子.因此,需要3个参数:纬度,经度和半径.

在这种情况下,我可以考虑2个选项:
1.将参数放在查询字符串中:api/posts/?lat=5.54158&lng=71.5486&radius=10
2.将参数放在URL中:api/posts/lat/5.54158/lng/71.5486/radius/10

哪一个是正确的方法?将所需参数放在查询字符串中似乎是错误的,但后一种方法感觉有点'丑陋'.

PS.我知道有很多关于这个主题的讨论(例如:REST API最佳实践:在哪里放置参数?),但我的问题专门针对需要参数的情况,而不是可选的.

api rest

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

pygame vs tkinter.

我一直在网上搜索并阅读Python中的GUI开发,并且已经读过Tkinter是Python最好的GUI工具包之一.但我也知道Pygame是一个可以用于GUI的库.由于我对编程很新,有人可以解释一下Pygame和Tkinter之间的区别,以及哪些应该在什么场合使用.这对于国际象棋引擎GUI来说是更好的选择.非常感谢你提前.

python pygame tkinter

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

Flask http-auth 和单元测试

你好!

我有一个使用 HTTP 基本身份验证保护的路由,该身份验证由 Flask-HTTPAuth 实现。如果我使用curl,一切都工作正常(我可以访问路由),但是在单元测试时,即使我为其提供了正确的用户名和密码,也无法访问该路由。

以下是我的测试模块中的相关代码片段:

class TestClient(object):
    def __init__(self, app):
        self.client = app.test_client()

    def send(self, url, method, data=None, headers={}):
        if data:
            data = json.dumps(data)

        rv = method(url, data=data, headers=headers)
        return rv, json.loads(rv.data.decode('utf-8'))

    def delete(self, url, headers={}):
        return self.send(url, self.client.delete, headers)

class TestCase(unittest.TestCase):
    def setUp(self):
        app.config.from_object('test_config')
        self.app = app
        self.app_context = self.app.app_context()
        self.app_context.push()
        db.create_all()
        self.client = TestClient(self.app)

    def test_delete_user(self):
        # create new user
        data = {'username': 'john', 'password': 'doe'}
        self.client.post('/users', data=data)

        # delete previously created user
        headers = {} …
Run Code Online (Sandbox Code Playgroud)

python flask flask-httpauth

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

在heroku中为flask app设置环境变量

我有一个烧瓶应用程序,它使用不同的配置文件用于开发和生产环境.相关的代码是这样的:

app.config.from_object('config.dev')
app.config.from_envvar('SPOTPIX_SETTINGS', silent=True)
Run Code Online (Sandbox Code Playgroud)

当我在我的本地服务器上进行开发时,配置来自config.dev,但是当我将代码推送到heroku时,我想设置SPOTPIX_SETTINGS环境变量以指向'config.prod'文件.这可以在heroku命令行客户端中完成,如下所示:

heroku config:set SPOTPIX_SETTINGS= 
Run Code Online (Sandbox Code Playgroud)

但是,我不知道我应该在等号的右侧写什么,因为我无法将生产配置文件的绝对路径分配给环境变量,因为这在heroku中与在我的不一样.开发机器.

非常感谢你!

python heroku flask

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

用于数据表操作的 .txt 与 .csv 文件格式

我正在开发一个程序,需要从 Excel 表中读取值,然后对它们进行一些操作并将结果保存为新文件。

由于python无法直接读取excel文件,我首先必须将文件转换为.txt或.csv。这让我思考这两种文件格式之间是否存在真正的区别。第一个只是用 \t 分隔两列,另一列用分号分隔(当在 python 中使用 .read() 函数时)。如果没有,为什么一个人应该更喜欢 .txt 而不是另一个,反之亦然?

python

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

扫描仪行不可用错误

我用Scanner.nextLine()两种不同的方法从两个不同的扫描仪对象中调用该方法.有时当我Scanner.nextLine()从第二种方法调用它时,它会给我一个" 行不可用 "的错误.可能是什么问题?

import java.util.Scanner;

public class TicTacToe {

    private final String COMPUTER = "computer";
    private final String PLAYER = "player";

    /**
     * Asks the user to choose a letter ('X' or 'O')
     * and checks if the input is valid.
     */
    public void askLetter() {
        System.out.println("Please enter 'X' or 'O': ");
        Scanner input = new Scanner(System.in);
        String letter = input.nextLine().toUpperCase().trim();
        while (!letter.equals("X") && !letter.equals("O")) {
            System.out.println("Please enter 'X' or 'O': ");
            letter = input.nextLine().toUpperCase().trim();
        } …
Run Code Online (Sandbox Code Playgroud)

java

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