小编Ste*_*uch的帖子

如何在Python中对数组的列进行求和

如何在python数组中添加列的所有值?理想情况下,我想这样做而不导入任何额外的库.

input_val = [[1, 2, 3, 4, 5],
             [1, 2, 3, 4, 5],
             [1, 2, 3, 4, 5]]

output_val = [3, 6, 9, 12, 15]
Run Code Online (Sandbox Code Playgroud)

我知道我可以在嵌套的for循环中完成,想知道是否有更好的方法(如列表理解)?

python arrays list-comprehension

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

单击命令行界面:如果未设置其他可选选项,则需要选项

在使用Python 点击库编写命令行界面(CLI)时,是否可以定义三个选项,只有在第一个(可选)未设置的情况下才需要第二个和第三个选项?

我的用例是一个登录系统,它允许我通过authentication token(选项1),或者通过username(选项2)和password(选项3)进行身份验证.

如果给出了令牌,则无需检查usernamepassword定义或提示它们.否则,如果忽略了此令牌,然后usernamepassword成为必需的,必须给予.

这可以使用回调以某种方式完成吗?

我的入门代码当然不能反映出预期的模式:

@click.command()
@click.option('--authentication-token', prompt=True, required=True)
@click.option('--username', prompt=True, required=True)
@click.option('--password', hide_input=True, prompt=True, required=True)
def login(authentication_token, username, password):
    print(authentication_token, username, password)

if __name__ == '__main__':
    login()
Run Code Online (Sandbox Code Playgroud)

python command-line-interface python-click

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

在调用函数的列表推导中有效地过滤掉"无"项

我有一个列表理解,调用一个可能返回的函数None.

>>> f = lambda x: x if x < 3 else None
>>> l = [f(x) for x in [1,2,3,4]]
[1, 2, None, None]
Run Code Online (Sandbox Code Playgroud)

我希望上面的列表理解,没有'无'条目.

什么是更有效的方式来执行以下操作,而不会产生额外的开销,同时保持列表理解的效率?

>>> filter(None, [f(x) for x in [1,2,3,4]])
[1, 2]
Run Code Online (Sandbox Code Playgroud)

python list-comprehension list python-2.7

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

如何将几个参数列表传递给@ click.option

我想通过命令行使用这种参数调用python脚本(列表可以是任何大小,例如3):

python test.py --option1 ["o11", "o12", "o13"] --option2 ["o21", "o22", "o23"]
Run Code Online (Sandbox Code Playgroud)

使用点击.从文档中,我们无法在任何地方声明我们可以使用列表作为@ click.option的参数

当我尝试这样做时:

#!/usr/bin/env python
import click

@click.command(context_settings=dict(help_option_names=['-h', '--help']))
@click.option('--option', default=[])
def do_stuff(option):

    return

# do stuff
if __name__ == '__main__':
    do_stuff()
Run Code Online (Sandbox Code Playgroud)

在我的test.py,通过从命令行调用它:

python test.py --option ["some option", "some option 2"]
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

错误:得到意外的额外参数(某些选项2))

我不能真正使用可变参数,因为每个命令只允许1个可变参数(http://click.pocoo.org/5/arguments/#variadic-arguments)

因此,如果有人能指出我正确的方向(最好使用点击),我将非常感激.

python parameters command-line python-click

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

在字典中转换2元组键并将其作为字典值添加到新字典中

所以我有价值观:

values = {(0, 0): 0, (0, 1): 1, (1, 0): 1, (1, 1): 0}
Run Code Online (Sandbox Code Playgroud)

我想将上面的字典转换为:

values = {0: {0: 0, 1: 1}, 1: {0: 1, 1: 0}}
Run Code Online (Sandbox Code Playgroud)

我的功能:

def convert(values : {(int,int): int}) -> {int: {int: int}}:
    dictionary = {}
    l = []

    for k in d.keys():
        l.append(k)

    for k,v in d.items():
        for i in l:
            if i == k:
                dictionary[v] = dict(l)

    return dictionary
Run Code Online (Sandbox Code Playgroud)

但我把它作为我的输出而是:

values = {0: {0: 1, 1: 1}, 1: {0: 1, 1: 1}}
Run Code Online (Sandbox Code Playgroud)

python dictionary tuples

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

在Python中使用布尔标志单击库(命令行参数)

我正试图为我的Python程序制作一个详细的标志.目前,我这样做:

import click

#global variable
verboseFlag = False

#parse arguments
@click.command()
@click.option('--verbose', '-v', is_flag=True, help="Print more output.")
def log(verbose):
    global verboseFlag
    verboseFlag = True

def main():    
    log()        
    if verboseFlag:
         print("Verbose on!")

if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

它永远不会打印"详细!" 即使我设置'-v'参数.我的想法是日志功能需要一个参数,但我该给它什么?另外,有没有办法检查详细标志是否在没有全局变量的情况下打开?

python command-line-arguments python-click

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

Python 和 sphinx:多行 google 样式文档字符串中的项目符号列表

我目前正在使用 Sphinx 记录我的 Python 项目。在文档字符串的多行部分中包含项目符号列表时,我遇到了一个问题。

我想包括一个项目符号列表,但其中一项很长。我想要:

  • 通过 Sphinx 正确呈现项目符号列表
  • 但也有我的代码尊重 PEP8 关于行长度(<79)

你有什么建议让我为这个文档字符串做些什么:

class geography():
""" Class defining a geography (cities and distance matrix)

This class implements a geography with a list of named cities with their
associated coordinates in a plane. Helper functions enable to :

- give a visual representation of that geography
- give a visual representation of the distance matrix
- give a visual representation of a configuration, a configuration being the repartition of some or …
Run Code Online (Sandbox Code Playgroud)

python docstring google-style-guide python-sphinx

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

熊猫 - 剥离白色空间

我正在使用python csvkit来比较2个这样的文件:

df1 = pd.read_csv('input1.csv', sep=',\s+', delimiter=',', encoding="utf-8")
df2 = pd.read_csv('input2.csv', sep=',\s,', delimiter=',', encoding="utf-8")
df3 = pd.merge(df1,df2, on='employee_id', how='right')
df3.to_csv('output.csv', encoding='utf-8', index=False)
Run Code Online (Sandbox Code Playgroud)

目前我正在通过脚本运行该文件,从employee_id列中删除空格.

employee_ids的一个例子:

37 78973 3
23787
2 22 3
123
Run Code Online (Sandbox Code Playgroud)

有没有办法csvkit做到这一点并为我节省一步?

python csv pandas

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

什么是计算机科学的批量?

我正在读Akka的调度员,我了解到它用于批量处理.什么是计算机科学的批量?

computer-science dispatcher akka

10
推荐指数
2
解决办法
2174
查看次数

在setuptools包上的Pyinstaller

我正在尝试在我使用Click库在Python中构建的CLI应用程序上运行PyInstaller .我在使用PyInstaller构建项目时遇到了麻烦.PyInstaller在他们的GitHub wiki中有一个名为Recipe Setuptools Entry Point的文档,该文档提供了有关如何将PyInstaller与setuptools包一起使用的信息,我正在为此项目使用它.但是,它似乎在我运行时找不到基本模块pyinstaller --onefile main.spec.

我的问题是:问题只是我的文件夹结构的问题吗?Recipe Setuptools入口点是否采用某种文件结构?

相关信息

Pyinstaller输出

184 INFO: PyInstaller: 3.3.1
184 INFO: Python: 3.6.4
189 INFO: Platform: Darwin-16.7.0-x86_64-i386-64bit
193 INFO: UPX is available.
Traceback (most recent call last):
  File "/usr/local/bin/pyinstaller", line 11, in <module>
    sys.exit(run())
  File "/usr/local/lib/python3.6/site-packages/PyInstaller/__main__.py", line 94, in run
    run_build(pyi_config, spec_file, **vars(args))
  File "/usr/local/lib/python3.6/site-packages/PyInstaller/__main__.py", line 46, in run_build
    PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/PyInstaller/building/build_main.py", line 791, in main
    build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
  File …
Run Code Online (Sandbox Code Playgroud)

python setuptools pyinstaller python-3.x python-click

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