python 字符串、list、元組、字典常用方法


一、字符串常用方法

#字符串常用方法 a = ' 字符串 \n\n\n\n\n'#\n換行符 #c = a.strip()#默認去掉字符串兩邊的空格和換行符 c = a.lstrip()#默認去掉字符串左邊的空格和換行符 #c = a.rstrip()#默認去掉字符串右邊的空格 print('c...',c) print('a...',a) words = 'today is a wonderfulday' print(words.strip('today'))#如果strip方法指定一個值的話,那么會去掉這兩個值 print(words.count('a'))#統計字符串出現的次數 print(words.index('is'))#找下標 print(words.index('z'))#找下標如果元素不找不到的話,會報錯 print(words.find('z'))#找下標,如果元素找不到的話,返回-1 print(words.replace('day','DAY'))#字符串替換 print(words.isdigit())#判斷字符串是否為純數字
print(words.islower())#判斷字符串是否為小寫字母
print(words.isupper())#判斷字符串是否為大寫字母
print(words.startswith(
'http'))#判斷是否以某個字符串開頭 print(words.endswith('.jpg'))#判斷是否以某個字符串結尾 print(words.upper())#將字符串變成大寫 print(words.lower())#將字符串變成小寫 username = 'abcdeff45%&' print(username.isalpha())#判斷字符串是否全為字母 print(username.isalnum())#字符串中只要包含符號就返回False,其他值返回True

字符串比較重要的兩個方法
name_list = names.split(',')#根據逗號進行分割字符串,讀取文件時要取文件某一行中的某一個值時這個方法特別好用
','.join('abc')#連接字符串

二、list循環

lists = ['huahua','caocao','niaoniao','shushu',[8,6,3,1]] words = 'marry,lily,jack' age = 18#該種類型不可循環 #for循環在循環可迭代對象的時候,每次循環的是里面的每一個元素
for name in words:#lists里面有多少元素就循環多少次
    name +='100'#name表示lists里面的每一個元素
    print(name) for name in lists: if type(name)==list:#判斷元素類型
        for i in name: print(i) print(name)

list練習
stus=[ ['小明','未交'], ['小白','已交'], ['小紫','已交'], ['小紅','未交'], ['小綠','未交'], ['小黃','未交'], ['小黑','已交'] ] #統計所有已交作業的同學和未交作業的同學
pass_list = []#存所有已交作業的同學
fail_list = []#存所有未交作業的同學
for stu in stus: status = stus[1]#存是否交作業的狀態
    name = stus[0]#存學生姓名
    if status == '未交': fail_list.append(name) else: pass_list.append(name) print('未交作業的同學是%s,總共有%s個人'%(fail_list,len(fail_list))) print('已交作業的同學是%s,總共有%s個人'%(pass_list,len(pass_list)))
 
         
#校驗用戶名是否合法 #輸入賬號 #input #如果賬號存在的話,提示已經被注冊,如果不存在,就讓他注冊;all_users #不能為空 #strip() #用戶名長度6-12之間 #len #最多輸入三次 #循環
all_users = ['張三三','lilylily','王五五'] 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('失敗次數過多')

三、元組

#元組也是一個list,他和list的區別是元組的元素無法修改
tuple1 = (2,3,4,5,6,4,7) print(type(tuple1)) print(tuple1[:7]) print(tuple1[:5:-1]) for i in range(6): print(tuple1[i]) for i in tuple1: print(i) lists = (#不能修改
    '192.168.1.108', 'root', '123456', '3306', 'hehe' ) word = (1) word1 = ('abcd') print(type(word))#int型
print(type(word1))#str型
 word2 = (1,) word3 = ('abcd',) print(type(word2))#int型
print(type(word3))#str型

四、字典常用方法

#字典是key-value的形式 #string list dict #1、取數據方便 #2、速度快
names = ['張san','物無數','王五','chenkai','lily'] age = [18,34,23,23,45] sex = ['','','','',''] infos = {'name':'張san','sex':'','addr':'地球','age':18} #1、查詢
print(infos.get('name')) print(infos.get('score'))#key不存在返回None
print(infos.get('score',56))#如果取不到這個key的話,默認是56
print(infos['sex']) #print(infos['score'])#如果key不存在會報錯

#2、增加
infos['phone'] = 15245125623#增加一個key
infos.setdefault('婚否','已婚')#key不存在兩種方法無區別
infos.setdefault('name','張玲玲')#如果key存在的話,無法修改key的值
infos['name'] = '王珊珊'#如果key存在的話會修改原來key的值
print(infos)#字典是無序的

#3、刪除 # infos.pop('name')#指定key來刪除 # infos.popitem()#隨機刪除一個key # del infos['phone']#指定key來刪除 # infos.clear()#清空字典 # print(infos)
#方法
print(infos.values())#獲取到字典所有的value
print(infos.keys())#獲取到字典所有的key
print(infos.items())#獲取到字典所有的key-value

#用in來判斷值在不在字典中,判斷的key是否在字典中,不判斷value

#字典查詢、增加舉例 people = { '張三':{ 'age':19, 'money':20000, 'clothes':'100套', 'hzp':'n多', 'shoes':['nike','addis'] }, '王五':{ 'jinku':'2000w', 'house':['三環一套','四環二套'], 'cars':{ 'japan':['普拉多','奔馳'], 'usa':['林肯','福特'], 'china':['qq','紅旗','武林'] } } } print(people['張三']['money'])#取到張三的money
print(people['王五']['cars']['usa'][0])#取到王五的林肯車

print(people['王五']['cars']['usa'])#取到王五的usa下所有的車
people['王五']['cars']['usa'].append('跑酷')#給王五的usa中增加車輛
print(people)
people['張三']['money'] += 200#張三的money增加200塊
#直接循環一個字典的話,那么循環的是字典的key,字典是無序的
for p in people: print(p) for k,v in people.items():#循環的時候,同時取key和value
    print(k,'====>',v) print()
for k in people:#循環的時候,同時取key和value,此種方法比people.items()速度快
  print(k,people[k])

字典練習
users = { 'zhanglili':'123456', 'wangwuw':'534545', } #所有的賬號和密碼 #username #pwd #cpwd #print('zhanglili' in users)#not in 字典里面用in來判斷的話,只是判斷key是否存在
for i in range(3): username = input('賬號:').strip() passwd = input('密碼:').strip() cppasswd = input('密碼確定:').strip() if username == '' or passwd =='' or cppasswd == '': print('賬號/密碼不能為空') elif username in users: print('用戶名已被注冊!') elif passwd != cppasswd: print('兩次輸入的密碼不一致') else: print('恭喜,注冊成功!') users[username] = passwd break
else: print('錯誤次數過多!')
 
         

 

 

五、常見數據類型(布爾、列表(增、刪、改、查、list切片))

#一、布爾值
a = True#T要大寫,小寫時表示普通的字符串
b = False#F要大寫,小寫時表示普通的字符串
if a>b: print('hello') #二、列表
stu = 'zhangsan,wangwu,陳凱,lily,wangwu' new_stus = ['zhangli','zhangsan','wangwu','lisi','lily','cengcen'] #編號從0開始 #列表、list、數組、array都是列表
print(new_stus[3]) #3是下標、索引、角標、編號(4種叫法)
print(new_stus[-1])#如果最前面一個元素的下標是0,最后一個元素的下標是-1

#1、增加元素
cities = [] cities.append('上海')#append()在列表末尾增加一個元素
print(cities) cities.insert(0,'西安')#insert()在指定的位置增加元素,添加時下標不要寫負數
print(cities) cities.append('北京') print(cities) #2、刪除元素
cities.pop(0)#刪除指定位置的元素
print(cities) cities.remove(1)#報錯
cities.remove('北京')#刪除指定的元素
print(cities) cities.clear()#清空list元素
print(cities) del cities[2]#刪除指定位置的元素

#3、修改(只能修改已有的下標值,指定的下標值不存在會報錯)
print(cities) cities[1] = '湖南'
print(cities) #4、查詢
print(cities[0])#指定位置的 #print(cities.index('雲南'))#獲取元素的下標,如果找不到那個元素的話會報錯
print(cities.count('西安'))#查看元素在list里出現過多少次
print(cities.reverse())#把list反轉,結果為None,無任何返回值
print(cities) #5、排序(字符串和字母都可以進行排序)
nums = [4,6,3,5,3,57,8,3,45,0,7] nums.sort()#升序排序
print(nums) nums.sort(reverse=True)#降序排序
print(nums) #合並和重復
cities2 = ['深圳','廈門','廣東','澳門'] print(cities+cities2)#合並list
print(cities*3)#將list重復3遍

#6、len()
all_users = ['zhangsan','lily','lisi'] print(len(all_users)) #7、多維數組
words = ['views','code','tools',['zhangss','wangwu']]#二維數組


#8、切片是list取值的一種方式
nums= ['zhangsan','wangwu','lisi','lily','cengcen'] print(nums[1:3])#切片顧頭不顧尾
print(nums[1:4]) print(nums[1:])#從某個小標開始取,取到末尾結束時下標可以省略不寫
print(nums[:6])#從頭開始取,取到后面某一個小標結束,那么開頭的下標可以不寫
print(nums[:])#取所有的值
 list1 = list(range(1,21)) print(list1) print(list1[:10:2])#2表示步長,隔兩個取一個
print(list1[:10:3])#隔三個取一個
print(list1[0::2]) print(list1[0::-1])#從右往左開始取,下表為0開始往右
print(list1[::-1])#反轉list1,如果步長是正數從左往右取,步長為負數從右到左取值 #產生一個新的list,不改變原來list的值 #list1.reverse()#改變原來list的值
print(list1) print(list1[::-2])#從右往左取

#切片操作同樣適用於字符串
info = '你好,今天天氣很好'
print(info[6:2:-1]) print(info[2:6:-1])#取值為空
print(info[::-1]) #下標是不會改變的
print(list1[:18:-1])#-1倒序,開頭沒有取值,所以默認從20往左取值,取到18的下標(19),但不顧尾,所以19不取

#9、修改(可變變量里面的元素可以隨便修改:如list,不可變變量里面的值不能修改:如string、元組)
name = '353454' name[2] = '5'#報錯:TypeError: 'str' object does not support item assignment

 


免責聲明!

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



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