Как сделать так, чтобы tcl switch возвращал постоянное значение?

Я считаю, что вы ищете groupby. Здесь вы можете найти документацию здесь

df.groupby('Column1')['Column2'].sum()
Column1  Column2
1          44
2          65
3          30
4          18

1
задан 19 January 2019 в 00:18
поделиться

2 ответа

Для константных выражений совсем не плохо использовать expr подобным образом. В противном случае, если вы используете Tcl 8.6, то у вас есть string cat, который отлично подойдет для этого при использовании с одним аргументом.

set z [switch a {
    default {string cat "val"}
}]

До 8.6 (или с очень ранними точечными выпусками 8.6) вам нужно было использовать вместо этого:

set z [switch a {
    default {return -level 0 "val"}
}]

Это на самом деле работает правильно - это также эффективно скомпилировано с байт-кодом - но он всегда чувствовал себя очень надуманным.


Я склонен помещать свои set в свои switch, а не наоборот, так что эта конкретная проблема обычно спорна для меня. Однако методы, описанные здесь, чрезвычайно полезны для тела вызова lmap.

0
ответ дан Donal Fellows 19 January 2019 в 00:18
поделиться

Более распространенным подходом для возврата значения является использование команды set:

set z [switch a { 
    default {set _z val} 
}]
0
ответ дан Brad Lanam 19 January 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: