日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python中序列的逆序方式_python

作者:z語默 ? 更新時間: 2022-07-14 編程語言

序列的逆序方式

1. range 函數

一般 for 循環中總會用到 range 函數來進行順序遍歷,同樣的,range 也能表示序列的逆序。

在 range(start, end, step) 中,start 表示序列的起始索引(默認為0),end 表示終止索引,step 表示移動步長(默認為1)。由于 range 函數是“顧頭不顧尾” 的形式,因此實際上其遍歷的索引終止位置是 end 的前一個索引。

比如:

list(range(5)) = [0, 1, 2, 3, 4]
list(range(1, 5)) = [1, 2, 3, 4]
list(range(1, 5, 1)) = [1, 2, 3, 4]
list(range(1, 5, 2)) = [1, 3]

同理,逆序遍歷只需將步長 step 設為負值即可。

比如:

list(range(5, 1, -1)) = [5, 4, 3, 2]
list(range(5, -2, 2)) = [5, 3, 1, -1]

這樣,在 for 循環中既可以實現順序遍歷,也可以進行逆序遍歷。

2. reversed 函數

在 python3 中,reversed 函數也能夠逆轉列表。

其實,在 python2.7 中就存在內置函數 reverse 可以用來翻轉列表,不過在 python3 中已經刪去該函數。

相比于 reverse 函數只能反轉列表,reversed 函數則可以翻轉多種序列,包括tuple、list、string、range等類型。

由于 reversed 函數實際上是一個類,因此其直接輸出的是對應序列值反轉后的迭代器,需要由對應類型的方法獲取反轉后的值。

比如:

# 列表反轉
a = [1, 2, 3, 4, 5]
print(reversed(a)) ?# 輸出:<list_reverseiterator object at 0x00000233F1C96588>
print(list(reversed(a))) ?# 輸出:[5, 4, 3, 2, 1]
# 元組反轉
a = (1, 2, 3, 4, 5)
print(reversed(a)) ?# 輸出:<reversed object at 0x000001FE9B3A6588>
print(tuple(reversed(a))) ?# 輸出:(5, 4, 3, 2, 1)
# 字符串反轉
a = '12345'
print(reversed(a)) ?# 輸出:<reversed object at 0x000001FAD17E2438>
print(str(reversed(a))) ?# 輸出:<reversed object at 0x000001FAD17E2438>
print("".join(reversed(a))) ?# 輸出:54321

注意:

  • list、tuple、range 類型均可相互轉換,但str類型不同;
  • str類型反轉序列輸出采用"".join(reversed(string)))方法,即將反轉序列按順序添加進新的字符串序列中。

不過,reversed 函數只能對已有序列做完全反轉,若只是想對序列其中一部分進行反轉,需要先截取對應序列再反轉,也可以用 range 函數遍歷所需部分序列。

3. 其他方法

除了以上兩種方法外,對于字符串序列,還可以用切片反轉方法進行反轉。

比如:

a = 'hello world'
print("".join(reversed(a))) ?# 輸出:dlrow olleh
print(a[::-1]) ?# 輸出:dlrow olleh
print(a[::-2]) ?# 輸出:drwolh

一個字符串的逆序函數

ef nixv(s):
    sum = " "                          #定義空字符串
    for i in reversed(range(len(s))): #i逆序遍歷
        sum = sum + s[i]              #使單獨的字符串組合成整體
    return sum                        #返回字符串
s = input("請輸入一個字符串:")
print(nixv(s))

# 方法二
s='wqrwqr123'
print(s[::-1])# 切片

# 方法三
from functools import reduce
s='123456'
result =reduce(lamada x,y:y+x,s)
print(result)

# 方法四
def fan(str1):
    len1=len(str1)
    for i in range(len1):
        print(str1[len1-1-i],end='')
fan('asdfg')

原文鏈接:https://blog.csdn.net/qq_24285815/article/details/106648824

欄目分類
最近更新