python學習(四)列表(數組)


列表、list、數組、array都是一個意思,下標、索引、角標、編號也是一個意思,根據這個來取值

new_stus = ['emily','劉佳','劉佳1','劉佳2','劉佳3','emily1']
print(new_stus[0])
print(new_stus[-1])
輸出結果:下標為0 的是emily,下標為-1則指最后一個,emily11
1、新增
cities=[南京]
cities.append('北京')  在列表末尾增加一個元素
 
        
cities.insert(0,'上海') 在列表指定位置增加一個元素
 
        
print(cities)   輸出結果,cities=[上海,南京,北京]
2、修改
cities=['北京','天津','上海','成都']
cities[1]='南京'
print(cities)
輸入結果: ['北京', '南京', '上海', '成都']
此種修改方式,如果指定的下標不存在會報錯
3、刪除
1)cities=['北京','天津','上海','成都']
cities.pop(0)
print(cities)
刪除指定位置的元素,輸出結果:['天津', '上海', '成都']
2)cities=['北京','天津','上海','成都']
cities.remove('上海')
print(cities)
刪除指定的元素,輸出結果:['北京', '天津', '成都']
3)cities.clear() 清空整個list
4)cities=['北京','天津','上海','成都']
  del cities[-1]
  print(cities)
刪除指定位置的元素,輸出結果:['北京', '天津', '上海']
4、查詢
cities=['北京','天津','上海','成都']
print(cities)
輸出整個list
print(cities[0])
輸出下標為0 的元素
print(cities.index('天津'))
獲取元素的下標,找不到元素的時候會報錯

print(cities.count('天津'))
查看元素在list里面出現了多少次
5、反轉
my_list = ['python','jemeter','charles','postman']
print(my_list.reverse()) #就是把這個list反轉一下,但不會返回任何值
print(my_list)#反轉后的結果
6、升序降序
nums = [9, 2, 34, 12, 34, 3423, 456]
nums.sort() #升序排序
nums.sort(reverse=True) #降序排序
print(nums)
除了對數字列表進行排序,字母列表可以排序
7、合並與復制
cities = ['成都','南京']
cities2 =['上海','北京','西安','成都']
print(cities+cities2) #合並list,重復數據不會去重
print(cities*2) #復制兩遍
8、len的用法
1)列表中指取元素個數
all_users = ['測試','測試1','測試2']
print(len(all_users))
結果是3,即該列表有3個元素
2)字符串中指取字符串的長度
words = 'views'
print(len(words)) #字符串的長度
結果是5,字符串包含5個字符,長度為5

9、以上學習的練習題
#校驗用戶名是否合法
#輸入賬號密碼 input
#如果賬號存在的,提示已經被注冊,如果不存在的,就讓他注冊 all_users[]
#不能為空 #strip()
#用戶名長度長度6-12之間
#最多輸入三次
all_users = ['emily1','emily2','emily3']
for i in range(3):
    username = input('請輸入賬號:').strip()
    if len(username)>5 and len(username)<13:
        if all_users.count(username)>0:
            print('用戶名已經被注冊')
        else:
            print('可以注冊')
            break
    else:
        print('用戶名長度不合法,長度應該在6-12之間!')

else:
    print('失敗數次過多')
10、多維數組
1)二維數組
words = ['view','code','tools',['price','num',198]]  
print(words[3][1])

結果為:num

2)三維數組

words1 = ['view','code','tools',['price','num',198,['hello','usa','測試']]] 
print(words1[3][3][1])

結果為:usa

11、切片

list取值的一種方式(取多個值)
nums = ['emily','emilyq','emily2','emily3']
print(nums[1:3])  #顧頭不顧尾,即取值不包含結尾下標的值,即取得是下標1和2的元素
print(nums[1:])  #如果從某個下標開始取,取到末尾結束,那么末尾的下標可以省略不寫
print(nums[:2])  #從頭開始取,取到后面某個下標結束,那么開頭的小標可以不寫
print(nums[:])  #取所有值

輸出結果如下:

['emilyq', 'emily2'] 顧頭不顧尾,就不會取下標為3的元素,只取小標為1和2的元素
['emilyq', 'emily2', 'emily3']
['emily', 'emilyq']
['emily', 'emilyq', 'emily2', 'emily3']

12、步長

lis = list(range(1,21))
print(lis[:18:-1]) #-1倒序,開頭沒有取值,所以默認從20往左取值,取到18的下標(19),但不顧尾,所以19不取
print (lis) 
print(lis[:10])
print(lis[:10:3]) #步長  隔幾個取一次數
print(lis[::3])
print(lis[::-1])  #如果步長是正數,從左往右取值;如果步長是負數,是從右邊往左邊取值
print(lis[::-2])

輸出結果如下:

[20]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 4, 7, 10]
[1, 4, 7, 10, 13, 16, 19]
[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
[20, 18, 16, 14, 12, 10, 8, 6, 4, 2]
[2, 1]

13、多元數組反轉

lis = list(range(1,21))
print(lis) lis.reverse()
#改變了原來list的值 print(lis) #產生一個新的list,不會改變原來list的值

輸出結果如下:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

14、切片操作適用於字符串

info = '你好,今天天氣有雨'
print(info[2:0:-1])

輸出結果為:

,好   

 步長為負要從右往左找,下標2的元素是逗號,下標1的元素是好,下標0的元素是你,顧頭不顧尾,就只取下標2和1的,且是從右往左取

 

 

 



 

 
 
 
 




 
 
 
        

 

 
        
 
        
 
 
 


 



免責聲明!

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



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