Python reverse list 局部反转 逆向切片 多维 slice list拼接

需要牢记几点:

  1. range(a,b,c)和 a : b : c a:b:c a:b:c的含义是一样的,但是list的下标只能用 a : b : c a:b:c a:b:c,其中c是步长
  2. reverse和reversed的区别是有没有返回值,类似于sort和sorted的区别
  3. 对于string类型来说,没有reverse()方法,只有reversed(),reversed()的返回值是iterater object,说白了就是一个迭代类型,因此str(reversed(‘abc’))仍然是reversed object,想要拿反转后的结果得用’’.join(reversed(‘abc’))
  4. 如果逆着slice, l e n ( a r r ) − 1 : − 1 : − 1 len(arr)-1:-1:-1 len(arr)1:1:1要返回空,因为-1在slice里被认为是python最后一个元素,所以slice只能把一个局部不包含下标为0的给reverse掉,整体reverse要用arr.reverse(),或者reversed(arr),再或者arr[::-1],再或者arr[-1::-1],但就是中间写多少都不对!
  5. 所以,不管reverse哪个局部,最好的方法是 a [ a : b : c ] = r e v e r s e d ( a [ a : b : c ] ) a[a:b:c] = reversed(a[a:b:c]) a[a:b:c]=reversed(a[a:b:c])
  6. Python list[list]并不支持多维slice,这不是numpy,但是可以支持选出某一行再对列slice, a r r [ a : b ] [ c : d ] arr[a:b][c:d] arr[a:b][c:d]相当于按行 [ a , b ) [a,b) [a,b)后再按行 [ c , d ) [c,d) [c,d),可以看下面那个例子
  7. list拼接简单而言有两种思路:
    a. 原list上append/原list上extend/原list上切片
    b. 使用list + ,返回一个新的list

下面看几个例子:

a = [1,2,3]
print(a[0:3]) #[1, 2, 3]
print(a[2:-1:-1]) #[]
print(a[::-1]) #[3, 2, 1]
print(a[-1::-1]) #[3, 2, 1]
print(a[-1:-1:-1]) #[]
print(a[-1:0:-1]) #[3, 2]

a[0:2].reverse()
print(a) #[1,2,3]
print(list(reversed(a[0:2]))) #[2,1]

a[0:2] = reversed(a[0:2])
print(a) #[2,1,3]

print(a[:-1]) #[2,1]
print(a[-1:]) #[3]
print(a[-1:-1]) #[]

astr = 'abc'
#reversed iterater object
print(reversed(astr)) #<reversed object at 0x000002752B36E518>
print(''.join(reversed(astr))) #cba
print(astr[::-1]) #cba
print(astr[-1::-1]) #cba
print(astr[-1:-1:-1]) #''
print(astr) #abc

arr=[[1,2,3],[4,5,6],[7,8,9]]
print(arr[2:4][2:4]) #[]
print(arr[1:4][:]) #[[4, 5, 6], [7, 8, 9]]
print(arr[:][1:4]) #[[4, 5, 6], [7, 8, 9]]
print(arr[1][1:4]) #[5, 6]
arr1 = [arr[1][1:4]]
arr1.extend([arr[2][1:4]])
print(arr1) # [[5, 6], [8, 9]]

#直接在原来list基础上搞
lst = [0,1,2]
print(lst.extend([3])) #None
lst[4:7] = [6]
print(lst)
#直接新new一个list
print([0,1,2]+[3,4])
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python中的list reverse是指将列表中的元素顺序颠倒,即将最后一个元素变为第一个,倒数第二个元素变为第二个,以此类推。可以使用list.reverse()方法来实现。例如: ``` a = [1, 2, 3, 4, 5] a.reverse() print(a) # 输出 [5, 4, 3, 2, 1] ``` ### 回答2: 在Python中,可以使用reverse()函数来反转一个列表中的元素顺序。reverse()函数是列表的一个方法,调用它会直接修改原列表,而不是返回一个新列表。 使用方法很简单,只需要在列表变量后面加上".reverse()"即可。例如,如果有一个列表变量x,我们可以使用x.reverse()来反转x中的元素顺序。 具体使用示例如下: ```python x = [1, 2, 3, 4, 5] x.reverse() print(x) ``` 运行结果如下: ``` [5, 4, 3, 2, 1] ``` 上述代码中,我们首先定义了一个列表变量x,其中包含了一些整数。然后,我们调用x.reverse()函数来反转x中的元素顺序。最后,使用print()函数将反转后的列表打印出来。可以看到,打印结果是[5, 4, 3, 2, 1],即元素顺序被成功反转了。 需要注意的是,reverse()函数会直接修改原列表,而不会返回一个新列表。因此,在调用reverse()函数后,原列表的元素顺序就会发生变化。如果不希望修改原列表,可以使用切片操作来生成一个新列表,具体可以参考其他相关资料。 总之,Python中的reverse()函数可以方便地实现列表元素顺序的反转,使用非常简单,只需要在列表变量后面加上".reverse()"即可。 ### 回答3: 在Python中,列表(list)是一种有序的可变类型的数据结构。其中一个常用的操作是反转列表,也就是将列表中的元素顺序颠倒过来。 Python中可以使用`reverse()`方法来实现列表的反转。`reverse()`方法是一个列表对象的方法,调用它后会改变列表本身的顺序,而不是返回一个新的反转后的列表。 示例代码如下: ```python my_list = [1, 2, 3, 4, 5] # 反转列表 my_list.reverse() print(my_list) # 输出:[5, 4, 3, 2, 1] ``` 在上述代码中,我们定义了一个包含5个整数的列表`my_list`。然后,我们调用`reverse()`方法对该列表进行反转操作。最后,打印输出反转后的列表结果。 需要注意的是,`reverse()`方法会直接修改原列表,因此在使用它之前请确认是否需要保留原有列表的顺序。如果想要创建一个新的反转后的列表,可以使用切片的方式来实现,不改变原列表。 例如: ```python my_list = [1, 2, 3, 4, 5] # 创建一个新的反转后的列表,不改变原列表 reversed_list = my_list[::-1] print(reversed_list) # 输出:[5, 4, 3, 2, 1] print(my_list) # 输出:[1, 2, 3, 4, 5] ``` 在上述代码中,我们使用切片`[::-1]`来创建一个新的反转后的列表`reversed_list`,并保留了原有列表`my_list`的顺序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值