我希望有变量来控制列表开头和结尾有多少元素要跳过,例如
skip_begin = 1
skip_end = 2
my_list = [9,8,7,6,5]
print(my_list[skip_begin:-skip_end])
Run Code Online (Sandbox Code Playgroud)
返回[8,7].
如果为什么slice [:-0]在Python节目中返回空列表,则skip_end = 0会给出一个空列表.
在这种情况下,我实际上只想要my_list [skip_begin:].
my_list[skip_begin:-skip_end if skip_end != 0 else '']
Run Code Online (Sandbox Code Playgroud)
不起作用.如何在三元运算中返回空值?
我宁愿在"[]"中使用三元运算而不是
my_list[skip_begin:-skip_end] if skip_end != 0 else my_list[skip_begin:]
Run Code Online (Sandbox Code Playgroud)
或if-else块.
my_list[skip_begin:-skip_end if skip_end != 0 else None]
Run Code Online (Sandbox Code Playgroud)
第一个解决方案的问题是索引切片需要一个数字(或空值),而不是字符串.
或者:
my_list[skip_begin:-skip_end or None]
Run Code Online (Sandbox Code Playgroud)
my_list[skip_begin:-skip_end if skip_end else None]
Run Code Online (Sandbox Code Playgroud)
你的路线:
my_list[skip_begin:-skip_end if skip_end != 0 else '']
Run Code Online (Sandbox Code Playgroud)
可能会让你走上正轨,因为它产生:
TypeError:切片索引必须是整数或无或具有__index__方法
我从之前的答案中获得灵感但与之if skip_end != 0相同skip_end