当我试图从字典中删除一个键时,我写道:
if 'key' in myDict:
del myDict['key']
Run Code Online (Sandbox Code Playgroud)
有这样一种方式吗?
假设我有一个类,其成员名为data,这是一个列表.
我希望能够使用例如文件名(包含初始化列表的数据)或实际列表来初始化类.
你这样做的技巧是什么?
你只是看看类型__class__吗?
我可能会缺少一些技巧吗?
我已经习惯了C++,其中按参数类型重载很容易.
给定一个字典,如何确定该字典中的给定键是否已设置为非None值?
即,我想这样做:
my_dict = {}
if (my_dict[key] != None):
my_dict[key] = 1
else:
my_dict[key] += 1
Run Code Online (Sandbox Code Playgroud)
即,我想增加值,如果已经存在,或者将其设置为1.
我有一个看起来像这样的循环:
for (int i = 0; i < max; i++) {
String myString = ...;
float myNum = Float.parseFloat(myString);
myFloats[i] = myNum;
}
Run Code Online (Sandbox Code Playgroud)
这是方法的主要内容,其唯一目的是返回浮点数组.我希望这个方法null在出现错误时返回,所以我将循环放在一个try...catch块中,如下所示:
try {
for (int i = 0; i < max; i++) {
String myString = ...;
float myNum = Float.parseFloat(myString);
myFloats[i] = myNum;
}
} catch (NumberFormatException ex) {
return null;
}
Run Code Online (Sandbox Code Playgroud)
但后来我还想把try...catch块放在循环中,如下所示:
for (int i = 0; i < max; i++) {
String myString = ...;
try {
float …Run Code Online (Sandbox Code Playgroud) 在测试变量有值时,是否有理由决定使用哪一个try或哪些if结构?
例如,有一个函数返回列表或不返回值.我想在处理之前检查结果.以下哪一项更可取,为什么?
result = function();
if (result):
for r in result:
#process items
Run Code Online (Sandbox Code Playgroud)
要么
result = function();
try:
for r in result:
#process items
except TypeError:
pass;
Run Code Online (Sandbox Code Playgroud)
list.index(x)如果该项不存在,Python会抛出异常.有没有更好的方法来做到这一点,不需要处理异常?
是否有清晰的方法来获取列表索引的值,或者None索引是否在Python中的范围或范围?
显而易见的方法是:
if len(the_list) > i:
return the_list[i]
else:
return None
Run Code Online (Sandbox Code Playgroud)
但是,详细程度会降低代码的可读性.是否有可以替代使用的干净,简单的单线程?
我发现在尝试引用它之前,我经常需要检查数据框中是否存在列或行.例如,我最终添加了许多代码,如:
if 'mycol' in df.columns and 'myindex' in df.index: x = df.loc[myindex, mycol]
else: x = mydefault
Run Code Online (Sandbox Code Playgroud)
有没有办法更好地做到这一点?例如,在我可以做的任意对象上x = getattr(anobject, 'id', default)- 在熊猫中有类似的东西吗?真的有办法实现我正在做的更优雅吗?
这个问题要求解释如何在各种语言中实现异常处理,但它没有收到任何 Python 响应。
我对 Python 特别感兴趣,因为 Python 以某种方式“鼓励”通过EAFP 原理抛出和捕获异常。
我从其他 SO 答案中了解到,如果预计很少引发异常,try/catch 块比 if/else 语句便宜,并且调用深度很重要,因为填充堆栈跟踪很昂贵。这可能主要适用于所有编程语言。
但是,python 的特别之处在于 EAFP 原则的高优先级。因此,python 异常是如何在参考实现 (CPython) 中内部实现的?
python error-handling performance exception python-internals
当文本文件中的第2行具有"nope"时,它将忽略该行并继续下一行.是否有另一种方法来写这个没有使用尝试,除了?我可以使用if else语句来执行此操作吗?
文本文件示例:
0 1
0 2 nope
1 3
2 5 nope
Run Code Online (Sandbox Code Playgroud)
码:
e = open('e.txt')
alist = []
for line in e:
start = int(line.split()[0])
target = int(line.split()[1])
try:
if line.split()[2] == 'nope':
continue
except IndexError:
alist.append([start, target])
Run Code Online (Sandbox Code Playgroud) 我在循环内部进行了一次分割操作,重复多次.碰巧在前几次通过循环(或多或少的前10个循环)中,除数为零.一旦获得值,就不再可能出现div by zero错误.
我有一个if条件来测试除数值,以避免div为零,但我想知道有一个性能影响,评估这if将对后续循环中的每次运行有所影响,特别是因为我知道它已经没用了.
该如何编码?在Python?
t有没有一种简单的方法来确定(表示重组二项式树)的嵌套级别(不依赖Python的递归限制) ?
t = (4, (3, 5, (2, 4, 6, (1, 3, 5, 7))))
Run Code Online (Sandbox Code Playgroud)
请注意,如果没有 的深度的先验知识t,例程可能会面临由 设定sys.setrecursionlimit(n)和查看的递归限制sys.getrecursionlimit()。尽管如此,事先将递归限制设置得非常高可能还不够,从而产生错误
`RecursionError: maximum recursion depth exceeded while calling a Python object`.
Run Code Online (Sandbox Code Playgroud)
下面生成一个更大(更深)的t:
t = tuple(tuple(range(k)) for k in range(1,200))`
Run Code Online (Sandbox Code Playgroud)
我想这些可能会起作用(还没有弄清楚细节):
t为字符串并计算左括号的数量PS 有什么想法为什么内联 TeX 在我的问题中没有渲染吗?测试:$N$
python ×11
performance ×3
dictionary ×2
algorithm ×1
constructor ×1
exception ×1
file ×1
filter ×1
if-statement ×1
java ×1
loops ×1
nested ×1
pandas ×1
python-3.x ×1
recursion ×1
try-catch ×1
try-except ×1
unset ×1