Python列表具有出色的索引/切片功能.以下是几个例子:

x = "123456"

x[:-3]
'123'

x[:-1]
'12345'  # -1 slices off last element

x[:-0]  # -0 slices off .. everything .. this is what i'd like to fix
''

我想切掉一个可变数量的元素d:

x[:-d]

但如果d为0,我们得到的结果与预期的大不相同.解决办法是:

d = 0
x[:-d if d else len(x)]
'123456'

这是可能的——但有没有(更短的)替代方案?

推荐答案

可以使用None,这是缺少开始/停止/步骤值的默认值:

x[:-d or None]

Python相关问答推荐

请从Python访问kivy子部件的功能需要帮助

如何销毁框架并使其在tkinter中看起来像以前的样子?

Pandas 第二小值有条件

将DF中的名称与另一DF拆分并匹配并返回匹配的公司

未删除映射表的行

我想一列Panadas的Rashrame,这是一个URL,我保存为CSV,可以直接点击

利用Selenium和Beautiful Soup实现Web抓取JavaScript表

在ubuntu上安装dlib时出错

pandas在第1列的id,第2列的标题,第3列的值,第3列的值?

将scipy. sparse矩阵直接保存为常规txt文件

dask无groupby(ddf. agg([min,max])?''''

手动设置seborn/matplotlib散点图连续变量图例中显示的值

Gunicorn无法启动Flask应用,因为无法将应用解析为属性名或函数调用.'"'' "

为什么在FastAPI中创建与数据库的连接时需要使用生成器?

当条件满足时停止ODE集成?

将一个双框爆炸到另一个双框的范围内

在极点中读取、扫描和接收有什么不同?

numpy数组和数组标量之间的不同行为

我可以不带视频系统的pygame,只用于游戏手柄输入吗?''

对数据帧进行分组,并按组间等概率抽样n行