在Python中,计算一个列表的最大值并输出一个值的方法,即使是一个空列表,也是这样做的:
max(python_list, default=0)
在Python中是否有类似的方法(在一个语句中,显然没有try和except,或者if和else)来计算平均值?
我使用了以下简单的代码:
average = sum(python_list)/ len(python_list)
显然,我得到了一个空列表的错误:
ZeroDivisionError: division by zero
我是python的新手,还没有读过很多代码来验证哪些样式被认为是“pythonic”。
当我开始编写代码时,我经常使用这个模式。
listThatMightBeEmpty = []
for items in listThatMightBeEmpty:
print "this may or may not print but the loop won't cause any errors"
我假设首先检查列表是否为空是多余的-如果列表为空,我可以让for-in循环什么也不做。但我希望确保在任何情况下都不会有任何陷阱,包括使用旧版本的python,包括在字典上使用f
嗨,我正在使用Python 3,我正在尝试"Comma代码“程序,它来自于”用Python自动处理无聊的东西“(所以你可以猜到我对它很陌生)。如果用户输入的列表是空的,我想打印“您的列表是空的”,但是我得到的是“您的列表是>>>”。为什么?下面您可以看到代码:
def commaCode(passedList):
for i in (passedList):
if len(passedList)==0:
print('empty')
elif passedList.index(i)<
我有一个python代码,需要在Python2和3中运行。在python2中,dict.values()返回列表,但是在Python 3中,它返回dict_val对象。因此,为了使其兼容,我把list(dict.values())。效果很好。但是,当我使用python模拟进行单元测试时,有一个错误。我在嘲弄dict.values(),它提供类似于这个<MagicMock name='mock().values()' id='1099587993168'>的输出,但是当我使用一个列表时,它会生成这个空列表。下面是一个例子。
功能文件:
class ab
在Joel的“”第2章中,提供了以下例子:
all([ ]) # True, no falsy elements in the list
any([ ]) # False, no truthy elements in the list
根据Grus的说法,Python将[] (一个空列表)视为一个"falsey“参数。那么,为什么我们会根据all()或any()参数应用于空列表而得到不同的结果呢?
在C/C++中,true标准化为1,false为0。虽然不是很好的做法
if variable:
#do something
在python中,决策似乎是可以的,如果变量是数字,则根据变量是零还是零来做出决定。以下内容是合理的。
a = 123123
if a:
print "if condition is true" # this prints
a = "a string"
if a:
print "if condition is true" # this prints
a = None
if a:
在Python中,我知道检查列表是否为空的pythonic方法是
if not a:
# do things with empty list
若要检查列表是否为空,请执行以下操作:
if a:
# do things with my list
如果两个列表不是空的,我们如何同时检查(读)?
if a and b:
# do things with my two lists
上面的内容似乎不起作用,我也不知道(a and b)到底是什么意思。a = [2],b = [1,3],(a and b) = [1,3]。and操作符到底在这里做什么?如果我最终在某个时候减少了b
def check(a,i):
n = len(a)
return not (i in a or
i+n in [a[j]+j for j in range(n)] or
i-n in [a[j]-j for j in range(n)])
def rsearch(N):
global a
global b
if len(a) == N:
b.append(a) #<-- this works HERE
print(a) #<-- this also works
我是python的新手,正在尝试创建一个Uniqueify(L)函数,该函数将提供一个数字列表或一个字符串列表(非空),并将返回该列表中唯一元素的列表。到目前为止,我有:
def Uniquefy(x):
a = []
for i in range(len(x)):
if x[i] in a == False:
a.append(x[i])
return a
看起来if str(x[i]) in a == False:失败了,这导致函数返回一个空列表。你们能提供什么帮助吗?
我有一个类似于这个的Python代码:
for lines in zip(*files):
# do something
其中files是一个文件列表,每个file是一个lines列表,每个line是一个string列表。因此,上面的代码应该首先解压列表files,然后应用函数zip(),返回包含每个文件的第一行的元组。问题是,如果文件列表的长度为30 (例如,),则这是很好的工作方式。但是,如果长度更大,例如120,则循环中的代码即使执行一次也不会执行。
其结论是,要么zip()函数返回一个空列表,要么*运算符没有完成它的工作。不管怎样,我的问题是,zip()可以处理的参数是否有限制(
我在某种程度上熟悉Python中的列表解释。但在需要检查列表是否为None的情况下,列表理解将失败。
例如:
tags = v.tags
if tags:
for t in tags:
if t['Key'] == 'Name':
# Do something
现在,如果tags为None,那么下面的列表理解将失败。如果标记为空/[],则可以正常工作。我想要一个列表的理解,以检查没有。
[k for k,v in tags if tags]:
Python新手入门,通过DataQuest学习。我正在学习如何创建列表列表(复数是列表列表还是列表列表?:P)。好吧,对于这个特定的部分,这是正确的代码:
numerical_list = [];
for line in nested_list:
name = line[0]
count= float(line[1])
new_list = [name, count]
numerical_list.append(new_list)
print(numerical_list[0:5]);
它们提供了一些指令,包括在开始循环之前创建空的numerical_lis
我发现Python中的这种行为非常奇怪,我相信它会导致许多错误,特别是如果您有一个函数/方法,它接收一个列表并在对list中的元素执行一些操作之后返回另一个列表。
x = []
val = (row for row in x) # create a generator
print(next(val)) # will raise StopIteration exception
for i in x:
if not i:
raise ValueError('The sequence is empty') # Exception is not raised