相关疑难解决方法(0)

了解切片表示法

我需要在Python的切片表示法上有一个很好的解释(引用是一个加号).

对我来说,这种符号需要一点点提升.

它看起来非常强大,但我还没有完全了解它.

python iterable list slice

3024
推荐指数
33
解决办法
159万
查看次数

当n可能为零时,如何切片(在Python中)"除了最后n个项目之外的所有项目"?

我有一个Python项目列表,我需要得到"除了最后N个"之外的所有项目.它需要在N为零时工作(在这种情况下我想要整个列表)并且当N大于或等于列表的长度时(在这种情况下我想要一个空列表).这适用于大多数情况:

mylist=[0,1,2,3,4,5,6,7,8,9]
print( mylist[:-n] )
Run Code Online (Sandbox Code Playgroud)

但是在N为零的情况下失败了. mylist[:0]返回一个空列表:[].是否有Python切片符号可以实现我想要的功能,还是一个简单的功能?

python slice

14
推荐指数
1
解决办法
2万
查看次数

在[:index]上使用动态索引列出切片

我需要使用负动态索引([: - index])对列表进行切片.这很容易,直到我意识到如果我的动态索引的值为0,则没有返回任何项目,而是返回整个列表.我怎样才能以索引为0的方式实现它,它返回整个字符串?我的代码很长很复杂,但基本上这个例子显示了问题:

    arr='test text'
    index=2
    print arr[:-index]
    >>'test te'    #Entire string minus 2 from the right
    index=1
    print arr[:-index]
    >>'test tex'    #Entire string minus 1 from the right
    index=0
    print arr[:-index]
    >>''           #I would like entire string minus 0 from the right
Run Code Online (Sandbox Code Playgroud)

注意:我使用的是Python 2.7.

python list slice

7
推荐指数
3
解决办法
2557
查看次数

当在Python中使用负数切字符串时,是否禁用0?

假设我有一个字符串:

>>>a = 'akwkwas'
>>>
>>>a[-3:]
'was'
>>>a[-3:None]
'was'
>>>a[-3:0]
''
Run Code Online (Sandbox Code Playgroud)

为什么不能将其0用作切片的结尾?

这是从文档:

记住分片工作方式的一种方法是将索引视为指向字符之间的指针,第一个字符的左边缘编号为0。然后,由n个字符组成的字符串的最后一个字符的右边缘具有索引n,例如:

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
 0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1
Run Code Online (Sandbox Code Playgroud)

数字的第一行给出索引0 ... 6在字符串中的位置;第二行给出相应的负索引。从i到j的切片由分别标记为i和j的边之间的所有字符组成。

因此,当我们在loop中使用负索引时,应该检查结尾的值,因为0负索引的结尾不存在,例如,当我们将字符串拆分为类似于金钱的字符串时:

>>>a = '12349878334'
>>>print(','.join([a[-i-3:-i if i else None] for i in range(0, len(a), 3)][::-1])) 
>>>12,349,878,334
Run Code Online (Sandbox Code Playgroud)

python python-2.7 python-3.x

4
推荐指数
1
解决办法
5126
查看次数

标签 统计

python ×4

slice ×3

list ×2

iterable ×1

python-2.7 ×1

python-3.x ×1