我对蟒蛇很陌生,我试着学习。
我正在使用下面的代码读取excel扩展表,但得到以下错误。有人能帮我解决这个问题吗?或者代码有什么问题。
import openpyxl
import os
if not os.path.isfile('C:\Python\Python36\EBC_N_Bhatt_Anilkumar _Team - 06132018.xlsx'):
raise Exception('File does not exist.')
wb = openpyxl.load_workbook('C:\Python\Python36\
我有一个包含1500000个多边形的shapefile,我需要找到每个多边形并将其与不同的网格相交。 我创建了一个简单的程序,从多边形到多边形的交叉点(具有多处理), pool = mp.Pool()
for index,pol in shapefile.iterrows():
# Limits each polygon in shapefile
ylat = lat_gridlimits
xlon= lon_gridlimits
args.append((dgrid,ylat,xlon,pol,index))
在回答时,我遇到了一些在Python语言中我从未想过的事情(由用户指出)。
基本上,我已经知道(这里有一个关于它的有趣的 ),为了避免奇怪的行为,在Python语言中,为了避免奇怪的行为,我在迭代时必须制作一个副本。
现在,我的问题是,使用enumerate能解决这个问题吗?
test_list = [1,2,3,4]
for index,item in enumerate(test_list):
if item == 1:
test_list.pop(index)
这段代码是否被认为是安全的,或者我应该使用,
for index,item in enumerate(t
使用Openpyxl和python3.5,我尝试使用下标从excel工作表中获取第一行,但我出错了。
# after getting filename
# after loading worksheet
# to get the first row of the worksheet
first_row = worksheet.rows[0]
# I get
Traceback (most recent call last):
File "<pyshell#54>", line 1, in <module>
first_row
示例:
from timeit import timeit
print(timeit("5 in [i for i in range(0, 100)]"))
print(timeit("5 in map(int, range(0, 100))"))
这就是结果:
3.771566713000084
0.9066896029999043
Python3.8.5(我也认为这没有引用python ^_^)
为什么python使用这种语法,背后有一些哲学推理吗?
for x in range(1,11,3):
而不是,例如,基本语法:
for x = 1 to 10 step 3
如果Python应该比大多数语言更具可读性,那么在这种情况下,它似乎比Sinclair更糟糕。
我试着想一想人类会如何表达这一点。也许“x取值1到10:”似乎是最基本的方法。
我知道这里以前也问过类似的问题,但我的略有不同。我想写一个函数,它接受一个正整数列表,并返回位于奇数索引的元素的总和。问题是,我只想使用for循环或while循环。这是我到目前为止所知道的:
def getSumOdds(aList):
for i in range(0, len(aList)):
if i%2 == 0:
pass
if i%2 != 0:
sum = sum + aList[i]
return sum
然而,当我在Python中输入这段代码时,我得到了一个错误: builtins.UnboundLocalErr
有没有人能帮我一下?
(我知道有一个内置的sum()函数,这个code只是我遇到的一般问题的一个例子)
def sumlist (lst):
sum = 0
for i in range(len(lst)):
sum = sum + lst[i]
return sum
我得到了这个错误:
sum = sum + lst[i]
TypeError: unsupported operand type(s) for +: 'int' and 'generator'
据我所知,问题是i是for循环中的一个gener
这主要是学习Python的一个练习。我编写这个函数是为了测试一个数字是否是素数:
def p1(n):
for d in xrange(2, int(math.sqrt(n)) + 1):
if n % d == 0:
return False
return True
然后,我意识到我可以轻松地使用任何()重写它:
def p2(n):
return not any((n % d == 0) for d in xrange(2, int(math.sqrt(n)) + 1))
就性能而言,我原以为p2比p1更快,或者至少和p1一样
考虑C样式嵌套的for循环,如下所示:
for i = 0; i < n; i++ {
for j = i; j < n; j++ {
do_something();
}
}
推荐的python翻译是什么?
按照的要求,应该避免使用range(len(something)),并在可能的情况下使用enumerate,我想:
for i, _ in enumerate(some_iter):
for j in range(i, len(some_iter)):
do_something()
但enumerate和range的组合似
为什么这两个循环不能给出相同的结果?(是的,我知道第二个版本很糟糕。但我仍然希望它能提供同样的输出。)
gen1 = range(3)
gen2 = range(3)
print("First attempt")
for i in gen1:
for j in gen2:
print(i,j)
gen1 = (i for i in range(3))
gen2 = (i for i in range(3))
print("Second attempt")
for i in gen1:
for j in gen2:
print(i,j)
我最近遇到了Python中生成器的想法,所以我给自己做了一个基本的例子:
def gen(lim):
print 'This is a generator'
for elem in xrange(lim):
yield elem
yield 'still generator...'
print 'done'
x = gen
print x
x = x(10)
print x
print x.next()
print x.next()
我想知道是否有任何方法可以遍历我的变量x,并且必须写出print
我正在刷新我的python (2.7),我正在发现迭代器和生成器。据我所知,它们是一种在不消耗太多内存的情况下浏览值的有效方法。因此,下面的代码对列表执行某种逻辑索引:删除list L的值,该列表L触发由函数f表示的假条件语句。
我对我的代码不满意,因为我觉得这个代码不是最优的,原因有三个:
我在某个地方读到,使用for循环要比使用while循环好。但是,在通常的for i in range(10)中,我不能修改'i‘的值,因为迭代看起来并不重要。
逻辑索引在面向矩阵的语言中非常强大,在python中应该有一种同样的方法(手工允许,但可能比我的代码更好)。
第三个原因就是我
除了使用list和sorted方法分别转换itertools.chain对象以获得无序列表和有序列表之外,在python3中是否有更有效的方法来实现相同的操作?我在这个中看到这个列表是用来调试的。这是真的吗?
下面是一个示例代码,我在其中对进程进行计时:
from itertools import chain
from time import time
def foo(n):
for i in range(n):
yield range(n)
def check(n):
# check list method
start = time
我正在使用数据科学类型提供的存根文件,以便能够检查我的熊猫相关代码。可悲的是,我有以下行为:
为
import pandas as pd
def test() -> pd.DataFrame:
pass
pd.concat((test() for _ in range(10)))
mypy报告test.py:6: error: Argument 1 to "concat" has incompatible type "Generator[DataFrame, None, None]"; expected "Union[Sequence[
要遍历列表的for x in y:的Python语法必须以某种方式记住指针当前所在的元素?当我试图在不使用for index, x in enumerate(y):的情况下解决这个问题时,我们如何访问该值
我想这样做的技术原因是,我假设enumerate()会降低性能,而以某种方式访问已经存在的“指针”则不会。但是,我从答案中看到,这个指针是非常私有的,并且无法访问。
我想这样做的功能原因是,如果当前元素的浮点值远离“所需”的浮点数范围,则可以跳过例如100个元素。
--答案--
解决方法如下(纯示意图示例):
# foo is assumed to be ordered in this ex
我用来学习python的资源让您在自己的网站中执行模块。我认为它最初是专为这所大学的学生设计的,所以我用家庭作业给它贴上了标签,尽管它不是。
总之:
他们让我执行这个任务:
定义一个函数prod( L ),它返回列表L中元素的乘积。
我让这个函数使用以下代码来工作:
def prod(L):
i = 0
answer = 1
x = len(L)
while i < x:
answer = answer * L[i]
i = i + 1
if i == x:
return answer
下一个模块将非常简短地讨论入内循环。
Python 3.6.4 (v3.6.4:d48ecebad5, Dec 18 2017, 21:07:28)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> c = [1, 2]
>>> c += map(lambda n: n *2, range(1, 3))
>>>
在python3中,为什么下面的代码会打印数字0、1、2、3、4?
[print(i) for i in range(5)]
但是如果你用发电机做同样的事情,它不会做任何事情:
(print(i) for i in range(5))
使用生成器获得相同结果的唯一方法是像这样迭代它:
z = (print(i) for i in range(5))
for i in z:
i
我目前正在学习Python (3),主要有使用R作为主要编程语言的经验。虽然在R for-loops中具有与Python相同的功能,但我被告知要避免将其用于大型操作,而是使用更高效的apply。
我的问题是:for-loops在Python中的效率有多高,还有其他的选择吗?作为一个Python新手,是否值得探索这些可能性?
例如:
p = some_candidate_parameter_generator(data)
for i in p:
fit_model_with paramter(data, i)
请相信我,给出一个例子是很棘手的,而不需要过多地研究特定的代码。但是,在R中,
Python3引入了类似生成器的对象,在调用range()和zip()时返回。返回的对象的作用类似于生成器,可以迭代一次,但不能很好地“打印”,这很像enumerate()返回参数。
然而,我很困惑地看到,它们是不同的对象类型,不属于types.GeneratorType,或者至少这就是types模块所显示的。将运行的函数(例如,期望生成程序)不会检测到它们。他们的遗产是什么?它们是否属于一个主要的“发电机”结构,以便与其他发电机一起识别它们?
import types
a = [1,2,3]
b = [4,5,6]
# create some generator-type objects
假设我们有一份名单,我想一个一个地把它弄清楚。看看这段代码:
#code1
>>> x=[9,0,8,1,7,2,5]
>>> for i in x :
x.remove(i)
>>> x
[0, 1, 2]
最后x是不清楚的。为什么?和
#code2:
>>> for i in x :
x.remove(x[0])
>>> x
[7, 2, 5]
这段代码类似于code1。通过code3比较这两种代码,它们为什么不像这一种:
#code3:
>>> while
我对Python缺乏经验,从Python3.4开始。
我阅读了上的Python3.x文档,还没有找到一种构造熟悉的C-系列for-循环的方法,即
for (i = 0; i < n; i++) {
A[i] = value;
}
用Python编写这样一个for-循环,从设计上看几乎是不可能的。有谁知道为什么序列上的Python迭代遵循这样的模式
for x in iterable: # e.g. range, itertools.count, generator functions
pass;
这是更有效,更方便,还是减少索引的例外?
我在一个项目上遇到了麻烦,后来成功地完成了它。但是,在运行其他人编写的一些代码时,我注意到他们能够在联接函数中使用迭代器(for循环)。
示例:
' '.join(x for x in name.split('*'))
我认为这是很棒的,因为它帮助我减少了代码行从我的原始草案。
因此,我的问题是:是否有任何文档具有接受迭代器的函数列表?