Python之切片操作


1、列表list中使用

1、range()生成器

 就是list取值的一種方式。

  • 生成器range(),用於寫列表的范圍,如果只寫一個數,就表示從0開始,到寫入的值-1:
l=list(range(10))#生成的是[0,1,2,3,4,5,6,7,8,9]
  • 如果寫入范圍,則是從寫入的第一個數值開始,從寫入的第二個數-1結束:
l=list(range(1,11))
l=['a','b','c','d','e','j','k','l','m','n','o'] # 0 1 2 3 4 5 6 7 8 9 10
print(l[2:8])#顧頭不顧尾
print(l[:5])#如果冒號前面沒寫的話,代表從0開始取的
print(l[4:])#如果冒號后面沒寫的話,代表取到最后
print(l[:])#如果冒號前后都沒寫的話,代表取全部

切片操作的特點:

  • 顧頭不顧尾
  • 使用range()生成器時,如果冒號前面沒寫的話,代表從0開始取元素
  • 使用range()生成器時,如果冒號后面沒寫的話,代表取到最后的元素
  • 如果冒號前后都沒寫的話,代表取全部

 

2、 步長

步長是從自己元素開始,再走幾步到想要的元素:

nums=list(range(1,11))
print(nums[1::2])#打印偶數
#1 2 3 4 5 6 ...10
print(nums[::2])#打印奇數
print(nums[::-2]) #取偶數,從右往左取值

步長特點:

  • 如果步長是正數的話,就從前往后開始取值;
  • 如果步長是負數的話,就從后往前開始取值,類似於reverse()。

 2、字符串中使用

字符串也有下標,使用上跟在列表中一致:

words='中秋節要上課'
print(words[0])
print(words[::-1])

 3、面試題

#判斷一個字符串是否是回文,即:字符串和它反轉后的字符串是否相等,如果相等就是回文。
s='上海自來水來自海上'
# 1232321
# 1111
# 回文算法,反過來倒過去都一樣

for i in range(10):
    s = input('請輸入一個字符串:')
    if len(s)<2:
        print('字符串長度必須大於2')
    elif s==s[::-1]: #.reverse()方法是列表中的方法,字符串中沒有,因此只能用切片方法 print('是回文')
    else:
        print('不是回文')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM