python中有列表、元組、集合、字典這四種可以存放多個數據元素的集合,他們在總體功能上都起著存放數據的作用,卻都有著各自的特點。本片文章中我們會對列表的用法做詳細說明。
演示環(huán)境: python3.6 pycharm中的python3.6
第一部分:列表(list): 列表(list)用來存儲不同的數據類型,使用 [ ]
例如:
service?=?['http','ssh','ftp']
后續(xù)演示中的service都以上述為基礎。
列表的特性: 1.1:索引:
print(service[1]) ##輸出第二個元素,sshprint(service[-1])???##輸出最后一個元素,ftp
1.2:切片:
print(service[1:]) ##打印第一個元素之后的內容print(service[:-1]) ##打印最后一個元素之前的內容print(service[::-1])??##倒序輸出
1.3:重復:
print(service?*?3)???##輸出三遍
1.4:連接:
service1 = ['nfs','samba']print(service?+?service1)
1.5:成員操作賦:
print('nfs'?in?service)???##判斷是否存在
1.6:迭代:[for循環(huán)遍歷]
for i in service:??print(i)???????##遍歷輸出每個元素
1.7列表里嵌套列表
service2 = [['abc','def','www'],[1,2,3],['mike','tony','sun']]對其索引:print(service2[2][1]) ##第三個元素中的第二個元素對其切片:print(service2[:][1])???##第二個元素
對以上內容進行一個練習: 題目:輸入一年中的某一天,判斷這一天是這一年的第幾天:【輸入格式:YYYY-MM-DD】
User_input = input('輸入:年-月-日')Year = int(User_input.split('-')[0]) ##得到年份Month = int(User_input.split('-')[1]) ##得到月份Day = int(User_input.split('-')[2]) ##得到天li = [31,28,31,30,31,30,31,31,30,31,30,31] ##所有平年各個月份的天數num = 0 ##記錄天數if ((Year % 4 == 0) and (Year % 100 != 0) or (Year % 400 == 0)): ##當閏年時: li[1] = 29 ##將二月的天數改為29for i in range(12): ##遍歷月份if Month > i + 1: ##i從0開始,假如是5月的某一天,i循環(huán)到3停止,經過0-1-2-3四次循環(huán),取4個月份即取1-2-3-4月的所有天 num += li[i] ##將1-4月總天數求和else: ##退出if判斷后,當下一次循環(huán)時,i=4,i+1不滿足if的條件,進入else,將最后5月的第幾天加入總天數中 num += Daybreakprint('這一天是%d年的第%d天'?%(Year,num))
列表的增刪改查: 1.增加:
往列表里增加元素:
1.print(service + ['firewalld']) ##用連接的方式2.service.append('firewalld') print(service) ##append:追加一個元素到列表中3.extend:拉伸 追加多個元素到列表中 service.extend(['mysql','firewalld'])4.service.insert(1,'samba')??###在指定索引位置插入元素??##在第二個元素的位置插入samba作為第二個元素
2.刪除:
1.service.pop() ##彈出最后一個元素a = service.pop(0) ##彈出第1個元素 ###可以將其賦值2.service.remove('ssh') ##指定刪除對象的名字 ##直接刪除,不能將其賦值 ##不能指定序號,只能指定要刪除對象的3. del service ##刪除列表del service ##直接刪除整個列表print(service)
3.賦值:
1.service[0] = 'mysql' ##通過索引 重新賦值2.service[:2]?=?['samba','iscsi']??##通過切片給前兩個元素重新賦值
4.查看: 查看出現的次數
service.count('ssh')
查看指定元素的索引值
service.index('iscsi') ###最小索引值service.index('ssh',1,3)???###從1-3中查找【第二個元素和第三個元素之間】【不取上限】
5.排序: sort 排序對字符串排序不區(qū)分大小寫
names = ['alice','Bob','coco','Harry']names.sort()names ###按照ASCLL排序 ###先排序首字母為大寫的,再排序首字母是小寫的names.sort(key=str.lower) ###對字符串排序不區(qū)分大小寫,相當于將所有元素轉換為小寫,再排序names.sort(key=str.upper)???###相當于將所有元素轉換為大寫,再排序
亂序
li = list(range(10)) ##生成0-9,將其轉換為列表形式print(li)import randomrandom.shuffle(li) ##隨機打亂print(li)????
練習:修改用戶登陸系統(tǒng):用戶名和用戶密碼存放在兩個列表里。用admin超級用戶登陸后,可以進行添加,刪除,查看用戶的操作。 1.后臺管理員admin 密碼admin 2.管理員才能看到會員信息 3.會員信息包含 添加會員信息 刪除會員信息 查看會員信息 退出
inuser = input('UserName: ')inpasswd = input('Password: ')users = ['root', 'westos']passwds = ['123', '456']if inuser == 'admin' and inpasswd == 'admin':while True: print(""" 菜單 1.添加會員信息 2.刪除會員信息 3.查看會員信息 4.退出 """) choice = input('請輸入選擇:')if choice == '1': Add_Name = input('要添加的會員名: ') Add_Passwd = input('設置會員的密碼為:') users = users + [Add_Name] passwds = passwds + [Add_Passwd] print('添加成功!')elif choice == '2': Remove_Name = input('請輸入要刪除的會員名:')if Remove_Name in users: Remove_Passwd = input('請輸入該會員的密碼:') SuoYinZhi = int(users.index(Remove_Name))if Remove_Passwd == passwds[SuoYinZhi]: users.remove(Remove_Name) passwds.pop(SuoYinZhi) print('成功刪除!')else: print('用戶密碼錯誤,無法驗證身份,刪除失敗')else: print('用戶錯誤!請輸入正確的用戶名')elif choice == '3': print('查看會員信息'.center(50,'*')) print('\t用戶名\t密碼') usercount = len(users)for i in range(usercount): print('\t%s\t%s' %(users[i],passwds[i]))elif choice == '4': exit()else:??????????? print('請輸入正確選擇!')
這是簡單的列表使用練習,功能不全面,后續(xù)待改進。
練習二:用python列表實現棧操作: 1.入棧 2.出棧 3.棧頂元素 4.棧長度 5.棧是否為空
“”" 功能包括: 1.入棧 放到棧頂的位置 2.出棧 判斷是不是棧頂元素,不是的話將其后元素遍歷移除,再移走該元素,再將其他元素加回棧 3.棧頂元素 索引 4.棧長度 判斷個數 5.棧是否為空 #棧頂有無元素 “”" #棧的特點:先進后出
Zhan = [] ##定義棧列表t = [] ##定義出棧臨時棧列表while True: print(""" 菜單 1.入棧 2.出棧 3.查看棧頂元素 4.查看棧長度 5.查看棧中元素 6.退出""") choice = input('請輸入選擇: ')if choice == '1': Aim_Name = input('請輸入要入棧的元素名:') Zhan = Zhan+[Aim_Name] print('入棧成功!')elif choice == '2': Del_Name = input('請輸入要出棧的元素名:')if Del_Name in Zhan: Length = len(Zhan)if Zhan.index(Del_Name) == Length-1: #如果為棧頂元素 Zhan.pop()else: #不為棧頂元素 SuoYin = Zhan.index(Del_Name)for i in range(Length-1-SuoYin): #將要出棧元素后面的元素先保留 t.append(Zhan.pop()) #原棧中最后一個元素變?yōu)榱说谝粋€,順序顛倒 Zhan.pop() #目標出棧 Zhan = Zhan+t[::-1] #將目標元素后的其他元素移回棧中else: print('棧中沒有%s' %Del_Name)elif choice == '3': Zhan_Top = Zhan[-1] print('棧頂元素為:%s' %Zhan_Top)elif choice == '4': Length = len(Zhan) print('棧的長度為%s' %Length)elif choice == '5': print(Zhan)elif choice == '6': exit()else: print('請輸入正確的選項!')????print('\n')
關于python中列表的基礎用法如上所述。
總結
以上是生活随笔 為你收集整理的python3 列表取交集_常用序列数据类型列表 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。