如何在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 点击库编写命令行界面(CLI)时,是否可以定义三个选项,只有在第一个(可选)未设置的情况下才需要第二个和第三个选项?
我的用例是一个登录系统,它允许我通过authentication token(选项1),或者通过username(选项2)和password(选项3)进行身份验证.
如果给出了令牌,则无需检查username并password定义或提示它们.否则,如果忽略了此令牌,然后username和password成为必需的,必须给予.
这可以使用回调以某种方式完成吗?
我的入门代码当然不能反映出预期的模式:
@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) 我有一个列表理解,调用一个可能返回的函数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脚本(列表可以是任何大小,例如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)
因此,如果有人能指出我正确的方向(最好使用点击),我将非常感激.
所以我有价值观:
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程序制作一个详细的标志.目前,我这样做:
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'参数.我的想法是日志功能需要一个参数,但我该给它什么?另外,有没有办法检查详细标志是否在没有全局变量的情况下打开?
我目前正在使用 Sphinx 记录我的 Python 项目。在文档字符串的多行部分中包含项目符号列表时,我遇到了一个问题。
我想包括一个项目符号列表,但其中一项很长。我想要:
你有什么建议让我为这个文档字符串做些什么:
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 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做到这一点并为我节省一步?
我正在读Akka的调度员,我了解到它用于批量处理.什么是计算机科学的批量?
我正在尝试在我使用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 ×9
python-click ×4
akka ×1
arrays ×1
command-line ×1
csv ×1
dictionary ×1
dispatcher ×1
docstring ×1
list ×1
pandas ×1
parameters ×1
pyinstaller ×1
python-2.7 ×1
python-3.x ×1
setuptools ×1
tuples ×1