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('不是回文')