Questions tagged «python»

Python是一种多范式,动态类型的多用途编程语言。它旨在快速学习,理解和使用并强制使用干净统一的语法。请注意,Python 2自2020年1月1日起已不再受支持。不过,对于特定于版本的Python问题,请添加[python-2.7]或[python-3.x]标签。使用Python变体或库(例如Jython,PyPy,Pandas,Numpy)时,请将其包含在标签中。

9
块矩阵到数组
我正在使用numpy。我有一个具有1列和N行的矩阵,并且我想从中获得具有N个元素的数组。 例如,如果我有M = matrix([[1], [2], [3], [4]]),我想得到A = array([1,2,3,4])。 为此,我使用A = np.array(M.T)[0]。有谁知道一种更优雅的方式来获得相同的结果? 谢谢!
149 python  arrays  matrix  numpy 


2
Django管理员中同一模型的多个ModelAdmins /视图
如何为同一个模型创建一个以上的ModelAdmin,每个ModelAdmin进行不同的自定义并链接到不同的URL? 假设我有一个称为Posts的Django模型。默认情况下,此模型的admin视图将列出所有Post对象。 我知道我可以通过设置变量(例如list_display)或queryset在ModelAdmin中重写方法来以各种方式自定义页面上显示的对象列表: class MyPostAdmin(admin.ModelAdmin): list_display = ('title', 'pub_date') def queryset(self, request): request_user = request.user return Post.objects.filter(author=request_user) admin.site.register(MyPostAdmin, Post) 默认情况下,可以通过URL访问/admin/myapp/post。但是我想拥有同一模型的多个视图/ ModelAdmins。例如,/admin/myapp/post将列出所有帖子对象,并/admin/myapp/myposts列出属于该用户的/admin/myapp/draftpost所有帖子,并可能列出尚未发布的所有帖子。(这些只是示例,我的实际用例更加复杂) 您不能为同一模型注册多个ModelAdmin(这将导致AlreadyRegistered异常)。理想情况下,我希望不将所有内容放入单个ModelAdmin类中并编写自己的“ urls”函数以根据URL返回不同的查询集来实现这一点。 我看了看Django的源代码,发现ModelAdmin.changelist_view在urls.py中可以包含这样的函数,但是我不确定它是如何工作的。 更新:我找到了一种实现自己想要的方式(见下文),但是我仍然想听听其他实现方式。

5
一行Python代码可以知道其缩进嵌套级别吗?
从这样的事情: print(get_indentation_level()) print(get_indentation_level()) print(get_indentation_level()) 我想得到这样的东西: 1 2 3 代码可以这样读取吗? 我想要的只是更多嵌套代码部分的输出。以使代码易于阅读的方式,使输出易于阅读。 当然,我可以使用eg手动实现此功能.format(),但是我想到的是自定义打印功能,该功能print(i*' ' + string)在哪里i是缩进级别。这将是使终端上的输出可读的一种快速方法。 有没有更好的方法可以避免麻烦的手动格式化?

6
python元组到字典
对于元组,t = ((1, 'a'),(2, 'b')) dict(t)返回{1: 'a', 2: 'b'} 有没有一种好的方法{'a': 1, 'b': 2}(交换键和值)? 最终,我希望能够返回1给定'a'或2给定'b',也许转换为字典不是最好的方法。

9
词汇闭包如何工作?
当我研究Java代码中的词法闭包问题时,我遇到了Python中的这个问题: flist = [] for i in xrange(3): def func(x): return x * i flist.append(func) for f in flist: print f(2) 请注意,此示例应避免使用lambda。它打印“ 4 4 4”,这是令人惊讶的。我希望“ 0 2 4”。 等效的Perl代码可以正确执行此操作: my @flist = (); foreach my $i (0 .. 2) { push(@flist, sub {$i * $_[0]}); } foreach my $f (@flist) …

12
写入Excel电子表格
我是Python的新手。我需要将程序中的一些数据写入电子表格。我在网上搜索过,似乎有很多可用的软件包(xlwt,XlsXcessive,openpyxl)。其他人则建议写入.csv文件(从不使用CSV,也不真正了解它是什么)。 该程序非常简单。我有两个列表(浮点数)和三个变量(字符串)。我不知道两个列表的长度,它们的长度可能不一样。 我希望布局如下图所示: 粉色列将具有第一个列表的值,绿色列将具有第二个列表的值。 那么最好的方法是什么? PS我正在运行Windows 7,但运行该程序的计算机上不一定安装了Office。 import xlwt x=1 y=2 z=3 list1=[2.34,4.346,4.234] book = xlwt.Workbook(encoding="utf-8") sheet1 = book.add_sheet("Sheet 1") sheet1.write(0, 0, "Display") sheet1.write(1, 0, "Dominance") sheet1.write(2, 0, "Test") sheet1.write(0, 1, x) sheet1.write(1, 1, y) sheet1.write(2, 1, z) sheet1.write(4, 0, "Stimulus Time") sheet1.write(4, 1, "Reaction Time") i=4 for n in …
149 python  excel  csv 

6
Sphinx autodoc不够自动化
我正在尝试使用Sphinx在Python中记录5,000多个项目。它有大约7个基本模块。据我所知,为了使用自动文档,我需要为项目中的每个文件编写如下代码: .. automodule:: mods.set.tests :members: :show-inheritance: 这太繁琐了,因为我有很多文件。如果我只想指定要记录的“ mods”包,那会容易得多。然后,Sphinx可以递归地浏览包并为每个子模块创建一个页面。 有这样的功能吗?如果没有,我可以编写一个脚本来制作所有.rst文件,但这将花费很多时间。

16
如何将sys.stdout复制到日志文件?
编辑:由于似乎没有解决方案,或者我正在做一些没人知道的非标准操作-我将修订我的问题,并问:当python应用正在制作日志时,完成记录的最佳方法是什么?很多系统调用? 我的应用程序有两种模式。在交互模式下,我希望所有输出都转到屏幕以及日志文件中,包括所有系统调用的输出。在守护程序模式下,所有输出进入日志。守护程序模式使用时效果很好os.dup2()。我找不到在不修改每个系统调用的情况下以交互方式将所有输出“发送”到日志的方法。 换句话说,我想要python应用程序生成的任何输出(包括系统调用output)的命令行“ tee”的功能。 澄清: 要重定向所有输出,我可以执行以下操作,并且效果很好: # open our log file so = se = open("%s.log" % self.name, 'w', 0) # re-open stdout without buffering sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0) # redirect stdout and stderr to the log file opened above os.dup2(so.fileno(), sys.stdout.fileno()) os.dup2(se.fileno(), sys.stderr.fileno()) 这样做的好处是,不需要其余代码即可进行特殊的打印调用。该代码还运行一些shell命令,因此不必分别处理它们的每个输出也很好。 简而言之,除了复制而不是重定向外,我想做同样的事情。 刚想到时,我认为只需反转即可dup2。为什么不呢?这是我的测试: import os, …
149 python  tee 

4
如何在Python中创建嵌套字典?
我有2个CSV文件:“数据”和“映射”: '映射'文件有4列:Device_Name,GDN,Device_Type,和Device_OS。填充所有四个列。 “数据”文件具有这些相同的列,其中Device_Name填充了列,而其他三列为空白。 我希望我的Python代码来打开这两个文件并为每个Device_Name数据文件,它的映射GDN,Device_Type以及Device_OS从映射文件中值。 我知道只有2列存在时才需要使用dict(需要映射1列),但是当需要映射3列时我不知道如何实现。 以下是我尝试完成的映射的代码Device_Type: x = dict([]) with open("Pricing Mapping_2013-04-22.csv", "rb") as in_file1: file_map = csv.reader(in_file1, delimiter=',') for row in file_map: typemap = [row[0],row[2]] x.append(typemap) with open("Pricing_Updated_Cleaned.csv", "rb") as in_file2, open("Data Scraper_GDN.csv", "wb") as out_file: writer = csv.writer(out_file, delimiter=',') for row in csv.reader(in_file2, delimiter=','): try: row[27] = x[row[11]] …

6
列表推导中的Lambda函数
即使f和lambda函数相同,以下两个列表推导的输出为何也不同? f = lambda x: x*x [f(x) for x in range(10)] 和 [lambda x: x*x for x in range(10)] 提醒您,两者type(f)并type(lambda x: x*x)返回相同的类型。
149 python 

7
格式化输出字符串,右对齐
我正在处理一个包含坐标x,y,z的文本文件 1 128 1298039 123388 0 2 .... 每行使用 words = line.split() 处理完数据后,我需要将坐标写回到另一个txt文件中,以使每一列中的项目(以及输入文件)都正确对齐。每行由坐标组成 line_new = words[0] + ' ' + words[1] + ' ' words[2]. std::setw()C ++中是否有任何类似操纵器的控件可以设置宽度和对齐方式?

8
将Python程序转换为C / C ++代码?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 改善这个问题 是否可以将Python程序转换为C / C ++? 我需要实现一些算法,而且我不确定性能差距是否足够大,足以证明我在C / C ++中做的所有痛苦(我不擅长)。我考虑过要编写一个简单的算法,并针对这种转换后的解决方案进行基准测试。如果仅此一项比Python版本要快得多,那么除了在C / C ++中做到这一点,我别无选择。
149 c++  python  c  code-generation 

11
ImportError:没有名为matplotlib.pyplot的模块
我目前正在练习matplotlib。这是我练习的第一个示例。 #!/usr/bin/python import matplotlib.pyplot as plt radius = [1.0, 2.0, 3.0, 4.0] area = [3.14159, 12.56636, 28.27431, 50.26544] plt.plot(radius, area) plt.show() 当我使用运行脚本时python ./plot_test.py,它可以正确显示绘图。但是,我自己运行./plot_test.py,它引发了以下问题: Traceback (most recent call last): File "./plot_test.py", line 3, in <module> import matplotlib.pyplot as plt ImportError: No module named matplotlib.pyplot python是否在不同位置查找matplotlib? 环境是: Mac OS X 10.8.4 64bit …
149 python  matplotlib 

30
将列表分为N个长度大致相等的部分
将列表分为大致相等的最佳方法是什么?例如,如果列表包含7个元素并将其分为2部分,则我们希望在一部分中获得3个元素,而另一部分应包含4个元素。 我正在寻找类似的东西even_split(L, n),打破L成n部分。 def chunks(L, n): """ Yield successive n-sized chunks from L. """ for i in range(0, len(L), n): yield L[i:i+n] 上面的代码给出了3个块,而不是3个块。我可以简单地进行转置(对此进行迭代,并取每列的第一个元素,将其称为第一部分,然后取其第二,然后将其置于第二部分,依此类推),但这会破坏项目的顺序。
149 python  list  chunks 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.