我有这样的代码
switch thing {
case thisThing:
do thing #1
do thing #2
case thatThing:
do thing #2
do thing #3
case anotherThing:
do thing #4
default:
default
}
Run Code Online (Sandbox Code Playgroud)
因此,每种情况都只有它能做到的事情.有些案例也与一个或多个其他案件做同样的事情.
如果我不想要任何重复的代码,有没有办法实现这一目标?
或者,有没有一个更有效的方法来做这个没有开关语句?我的意思是,我可能,例如,使用if语句,但像switch语句,我不能想办法来完成我想要的东西,而无需使用重复的代码.
此外,这个例子可能比上面更清楚
myFavoriteNumbers = []
myLeastFavoriteNumbers = []
switch myNumber {
case 1:
print("my number is number 1") // do this only for case 1
myFavoriteNumbers += [1] // do this for case 1 and case 2
case 2:
print("this is number 2") // do this only for case 2 …Run Code Online (Sandbox Code Playgroud) 我有看起来像这样的数据:
d = {'id' : [1, 1, 1, 2, 2, 2],
'levels': ['low', 'perfect', 'high', 'low', 'perfect', 'high'],
'value': [1, 10, 13, 2, 10, 13]}
df = pd.DataFrame(d, columns=['id', 'levels', 'value'])
df = df.groupby(['id','levels'])[['value']].mean()
Run Code Online (Sandbox Code Playgroud)
对于每一个[ID,等级],我想找到的区别value行和value中的perfect一行。它看起来像这样:
id | levels | value | penalty
1 | high | 13 | 3
| low | 1 | 9
| perfect| 10 | 0
2 | high | 13 | 3
| low | 2 | 8
| …Run Code Online (Sandbox Code Playgroud) 我正在尝试滚动到位于 UITextView 的属性文本中的特定子字符串。滚动完成后,我希望子字符串位于可见文本视图文本的顶部。但是,当 textView.selectedRange 位于子字符串范围下方时,我只能让子字符串到达顶部。无论滚动范围以前位于何处,如何才能使子字符串始终显示在顶部?
这是我当前的代码
let text = // a long NSAttributedString
let substring = "put me at the top!"
textView.attributedText = text
func scrollToSubstring() {
let str = text.string as NSString
let range = str.rangeOfString(substring, options: .RegularExpressionSearch, range: NSMakeRange(0, str.length), locale: nil)
textView.scrollRangeToVisible(range)
// HOW CAN I MAKE IT SO range ALWAYS APPEARS AT THE TOP?
}
Run Code Online (Sandbox Code Playgroud) ios ×2
swift ×2
control-flow ×1
dataframe ×1
nsrange ×1
pandas ×1
python ×1
scrollview ×1
textview ×1