我有一个列表,我想用None替换值,其中condition()返回True.
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)
例如,如果条件检查bool(项目%2)应该返回:
[None, 1, None, 3, None, 5, None, 7, None, 9, None]
Run Code Online (Sandbox Code Playgroud)
最有效的方法是什么?
使用Python 2.7如何将我的数字舍入到两个小数位而不是它给出的10左右?
print "financial return of outcome 1 =","$"+str(out1)
Run Code Online (Sandbox Code Playgroud) 我正在使用ReportLab在PDF文档中编写表格,并对结果非常满意(尽管还没有完全掌握Flowables).
但是,我无法弄清楚如何使一个跨越分页符的表重复其列标题.
下面的代码在C:\ Temp中创建一个test.pdf,它有一个标题行,后跟99行数据.
标题行在第一页看起来很棒,但我希望在第二页和第三页的顶部重复.
我很想知道使用SimpleDocTemplate完成任何方法的方法.
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Frame, Spacer
from reportlab.lib import colors
from reportlab.lib.units import cm
from reportlab.lib.pagesizes import A3, A4, landscape, portrait
from reportlab.lib.styles import ParagraphStyle, getSampleStyleSheet
from reportlab.lib.enums import TA_LEFT, TA_RIGHT, TA_CENTER, TA_JUSTIFY
from reportlab.pdfgen import canvas
pdfReportPages = "C:\\Temp\\test.pdf"
doc = SimpleDocTemplate(pdfReportPages, pagesize=A4)
# container for the "Flowable" objects
elements = []
styles=getSampleStyleSheet()
styleN = styles["Normal"]
# Make heading for each column
column1Heading = Paragraph("<para align=center>COLUMN ONE HEADING</para>",styles['Normal'])
column2Heading = …Run Code Online (Sandbox Code Playgroud) 他们的文件简单而专业.但他们并没有过多提及这些开源项目之间的关系.我什么时候应该使用哪一个?哪一个适合什么情况?
如果您是熟悉这些项目的GIS开发人员,您能解释一下吗?
如果Python字符串变量有一个整数,浮点数或放在其中的非数字字符串,有没有办法轻松测试该值的"类型"?
下面的代码是真实的(当然是正确的):
>>> strVar = "145"
>>> print type(strVar)
<type 'str'>
>>>
Run Code Online (Sandbox Code Playgroud)
但是有没有Python函数或其他方法可以让我从上面询问strVar集返回'int'
也许类似于下面的废话代码和结果......
>>> print typeofvalue(strVar)
<type 'int'>
Run Code Online (Sandbox Code Playgroud)
或更多废话:
>>> print type(unquote(strVar))
<type 'int'>
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下代码找到"CrudeRate"及其关联的"State_name"的最大值:
import arcpy
arcpy.env.workspace = "C:\\"
shp = r"C:\\USCancer2000.dbf"
rows = arcpy.SearchCursor(shp)
CrudeRate= "CrudeRate"
State_name= "State_name"
out_dict = {}
for row in rows:
for C in CrudeRate:
lst = []
if row.CrudeRate == C:
lst.append(row.CrudeRate)
out_dict(C) = max(lst)
del row,rows
for CrudeRate in out_dict:
print CrudeRate, State_name
Run Code Online (Sandbox Code Playgroud)
但当我运行它时,我得到:
Sytnax错误:无法分配函数调用
有没有人看到问题以及如何解决它?
我经常使用IDLE编辑Python代码,偶尔在执行Save时会收到I/O警告.

我假设我无意中添加了非ASCII字符,我真的不想声明cp1252编码.
有没有一种简单的方法来查找和删除警告所涉及的非ASCII?
涉及的操作系统版本是Windows 7,Python版本是2.6.5
我正在尝试使用raster包绘制在R中作为栅格导入的DEM的3D表面.
到目前为止,我的代码是:
DEM <- raster("DSM_TLS_2010_25cm_v4.tif")
DEM <- setMinMax(DEM)
col <- rainbow(20)
plot(DEM, col=col, zlim=c(0,790.22), main="Digital Elevation Model (DEM)")
Run Code Online (Sandbox Code Playgroud)
哪个适用于DEM的2D绘图,但是,当我尝试使其成为3D时,使用:
plot3d(DEM)
Run Code Online (Sandbox Code Playgroud)
要么
surface3d(DEM)
Run Code Online (Sandbox Code Playgroud)
它说cannot coerce type 'S4' to vector of type 'double'.
我确定答案非常简单,但还没有设法让它与我发现的类似问题一起工作.欢迎任何帮助!
使用下面的 Python 测试代码,我尝试将 Excel ( *.xls) 文件中的唯一工作表复制到包含一个工作表的新 Excel 文件中。
输入电子表格如下所示:
from copy import deepcopy
from xlrd import open_workbook
from xlutils.copy import copy as copy
from xlwt import Workbook
rb = open_workbook(r"C:\Temp\test1.xls",formatting_info=True)
wb = copy(rb)
new_book = Workbook()
r_sheet = rb.sheet_by_index(0)
sheets = []
w_sheet = deepcopy(wb.get_sheet(0))
w_sheet.set_name("test1")
for row_index in range(0, r_sheet.nrows):
for col_index in range(0, r_sheet.ncols):
cell_value = r_sheet.cell(row_index, col_index).value
print cell_value
w_sheet.write(row_index, col_index, cell_value)
sheets.append(w_sheet)
new_book._Workbook__worksheets = sheets
new_book.save(r"C:\Temp\test2.xls")
Run Code Online (Sandbox Code Playgroud)
如果我运行代码,它会显示下面的输出,并使用名为 test1 的工作表创建新的 Excel 文件。
Python 2.7.10 (default, …Run Code Online (Sandbox Code Playgroud) 在ReportLab用户指南中,它说:
reportlab/demos/colors中的colortest.py脚本演示了reportlab可以设置和使用颜色的不同方式.尝试运行脚本并查看输出文档colortest.pdf.
这显示了不同的颜色空间和在reportlab.lib.colors模块中命名的大量颜色选择.
当我安装ReportLab site-package时,它创建了一个名为reportlab的文件夹,但是安装的唯一子文件夹是fonts,graphics,lib,pdfbase,pdfgen和platypus,但没有演示.
文档是错误的还是我误解了在哪里查找它们?
无论哪种方式,我都希望找到更广泛的ReportLab命名颜色列表,而不是试图猜测哪些可能有效.
我有所有者名字的字符串,我需要确定它们是否包含两次姓氏.
例如,我的所有者名称可能是" BENNETT MCCARL&ARNETTE BENNETT ".
如果在字符串中找到任何单词两次,我想返回True,如果字符串中的所有单词都是唯一的,则返回False.
有谁知道如何使用Python做到这一点?
我看到许多问题,询问如何从字符串中删除前导零,但我还没有看到任何询问如何从字符串中删除任何和所有前导数字的问题.
我一直在尝试使用函数lstrip,type函数isdigit,切片表示法和正则表达式的组合而尚未找到方法.
有一个简单的方法吗?
例如:
如何计算给定列表中的前k项?
例如:
myList = [1,2,5]
Run Code Online (Sandbox Code Playgroud)
如何使用ķ返回1 ķ为= 1,3 ķ = 2和8用于ķ = 3?