我想知道,是否有一个Python等效的case语句,如VB.net或C#上提供的示例?
假设我有一个pandas数据框df:
我想计算数据框的列方式.
这很简单:
df.apply(average)
Run Code Online (Sandbox Code Playgroud)
然后列方式范围max(col) - min(col).这很容易再次:
df.apply(max) - df.apply(min)
Run Code Online (Sandbox Code Playgroud)
现在对于每个元素,我想减去其列的平均值并除以其列的范围.我不知道该怎么做
任何帮助/指针都非常感谢.
在Python中,我需要一个字典对象,如下所示:
{'a': 10, 'b': 20, 'c': 10, 'd': 10, 'e': 20}
Run Code Online (Sandbox Code Playgroud)
我已经能够通过组合dict.update()和如下dict.fromkeys()功能成功地获得这个:
myDict = {}
myDict.update(dict.fromkeys(['a', 'b', 'c'], 10))
myDict.update(dict.fromkeys(['b', 'e'], 20))
Run Code Online (Sandbox Code Playgroud)
但是,因为代码是为有时需要添加键/值的新手用户编写的,所以我更喜欢简单的简单(Perl-like)语法,例如:
myDict = {}
myDict['a', 'c', 'd'] = 10
myDict['b', 'e'] = 20
Run Code Online (Sandbox Code Playgroud)
然而,这给了我:
myDict = {('a', 'c', 'd'): 10, ('b', 'e'): 20}
Run Code Online (Sandbox Code Playgroud)
有没有办法可以进一步简化我的第一个例子(使用dict.update()和dict.fromkeys()),并获取我正在寻找的dict对象?
或者,或者,如果我在第二个例子中有一个带有元组的字典,那么我是否可以轻松地进行查找,例如myDict['c']或myDict.get('c')获取值10?
我想知道是否有一种简单的方法可以在Windows批处理文件中执行分支,具体取决于单个表达式的值.类似于C,C++,C#,Java,JavaScript,PHP和其他真实编程语言中的switch/case块的东西.
我唯一的解决方法是一个简单的if/else块,其中重复检查相同的表达式是否与不同的值相等:
IF "%ID%"=="0" (
REM do something
) ELSE IF "%ID%"=="1" (
REM do something else
) ELSE IF "%ID%"=="2" (
REM do another thing
) ELSE (
REM default case...
)
Run Code Online (Sandbox Code Playgroud)
如此愚蠢.有更好的解决方案吗?
我是Python的新手.请解释为什么python没有switch-case?
我试图用8位二进制字符串检查每个索引.如果它是'0'那么'OFF'否则它'ON'.
是否有更简洁的方法来编写具有类似开关功能的代码.?
目标是构建一个程序,将分数从“0 到 1”系统转换为“F 到 A”系统:
score >= 0.9会打印“A”score >= 0.8会打印'B'这是构建它的方法,它适用于程序,但有点重复:
if scr >= 0.9:
print('A')
elif scr >= 0.8:
print('B')
elif scr >= 0.7:
print('C')
elif scr >= 0.6:
print('D')
else:
print('F')
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种方法可以构建一个函数,以便复合语句不会重复。
我是一个完全的初学者,但会在以下几行:
def convertgrade(scr, numgrd, ltrgrd):
if scr >= numgrd:
return ltrgrd
if scr < numgrd:
return ltrgrd
Run Code Online (Sandbox Code Playgroud)
可能吗?
这里的意图是稍后我们可以通过只传递 scr、numbergrade 和 letter grade 作为参数来调用它:
convertgrade(scr, 0.9, 'A')
convertgrade(scr, 0.8, 'B')
convertgrade(scr, 0.7, 'C')
convertgrade(scr, 0.6, 'D') …Run Code Online (Sandbox Code Playgroud) 此问题要求使用 Python 中的 aswitch/case或match/case等效项。看来从Python 3.10开始我们现在可以使用match/case语句了。除了语法差异之外,我无法看到和理解match/case和陈述之间的区别!if, elif
是否存在根本差异导致它们具有不同的性能?或者以某种方式使用match/case我们可以更好地控制流量?但如何?match/case有没有比仅仅陈述更好的例子if?
我试过在python中创建一个类似switch的语句,而不是有很多if语句.
代码如下所示:
def findStuff(cds):
L=[]
c=0
for i in range(0, len(cds), 3):
a=differencesTo(cds[i:i+3])
result = {
a[2][0]==1: c=i+1,
a[2][1]==1: c=i+2,
a[2][2]==1: c=i+3,
a[1]==1: L.append((cds[i:i+3], a[0], c))
}
return L
Run Code Online (Sandbox Code Playgroud)
我的问题是,这不起作用.(与if语句一起使用,但在我看来这会更漂亮).
我在Python中找到了一些开关示例,它们遵循这种结构.谁能帮我?
C/C++、C#、Java、JavaScript 和 Pascal (参考)等编程语言具有switchandcase语句(有时也称为selector inspect)的组合,允许您根据多个条件检查一个值以执行某些操作。
my_value = 10;
switch(my_value) {
case 10:
print("The number is ten");
case 2*10:
print("The number is the double of ten");
case 100:
print("The number is one hundred");
default:
print("The number is none of 10, 2*10 or 100");
}
Run Code Online (Sandbox Code Playgroud)
描述switch-case结构的特殊语法的伪代码。
意识到像dictionary-lookups这样的功能等价物,是否有与上述编程结构完全相同的语法?
python syntax pattern-matching switch-statement conditional-statements
python ×9
syntax ×3
if-statement ×2
batch-file ×1
dictionary ×1
dry ×1
match ×1
numpy ×1
pandas ×1