Python基礎-列表、元組、字典、字符串

多維數組

nums1 = [1,2,3] #一維數組
nums2 = [1,2,3,[4,56]] #二維數組
nums3 = [1,2,3,4,['a','b','c','d','e',['一','二','三']],['四','五']] #三維數組
nums4 = [1,2,3,4,['a','b','c','d','e',['一','二','三',[1,2,3]]]] #四維數組
print(nums2[3][1]) #56
print(nums2[-1][-1]) #56
print(nums3[4][5][1]) #'二'
print(nums3[5][1]) #'五'
print(nums3[-1][-1]) #'五'

list

list中能夠放不一樣類型的值,list的下標從0開始。git

#定義一個list
stu_name = ['張三', '李四', '王五', 1, 1.5]
print(stu_name) #打印list中所有內容
print(stu_name[0]) #打印'張三'
len()

length = len(stu_name) #list的長度,list中元素的個數

list增長元素算法

append()
insert()

stu_name.append('朱六') #在list末尾添加一個元素
stu_name.insert(0, '小軍') #在指定位置插入一個元素
print(stu_name)

list修改元素api

stu_name[6] = '剷剷'
print(stu_name)

list刪除元素數組

pop()
remove()
del
reverse()

stu_name.pop() #刪除最後一個元素
stu_name.pop(4) #刪除指定下標的元素
stu_name.remove('小軍') #刪除指定的元素,有多個相同的元素,會刪除第一個
del stu_name[-1] #刪除指定位置的元素,正數從正序開始,負數從倒序開始
print(stu_name)

list查找元素app

count()
index()
reverse()
clear()

my_list = ['小黑', '小白', 1, 1, 2, 1.5]
print(my_list[-1])
print(my_list[0])
print(my_list.count(1)) #查詢某個元素在list裏面出現的次數
print(my_list.index(1)) #查找元素的下標,多個相同元素取第一個,不存在的無素會報錯
print(my_list.reverse()) #直接打印結果爲None
print(my_list) #輸出時list被反轉

my_list.clear() #list被清空
print(my_list)
sort()
sort(reverse=True)

nums = [9.23, 9, 3, 6, 1, 0]
nums.sort() #從小到大排序
nums.sort(reverse=True) #從大到小排序
nums.extend(my_list) #把一個list裏面的元素加入
print(nums)

new_list = nums + my_list + stu_name #合併
print(new_list)
print(new_list * 3) #複製幾回

list練習ide

users = ['wrp','nhy','haha']
#校驗用戶名是否存在

for i in range(5):
    username = input("請輸入用戶名:")
    # 若是用戶不存在的話,說明能夠註冊
    #if users.count(username) > 0:
    if username not in users: #in就是判斷在不在裏面
        print("用戶未註冊,能夠註冊")
        users.append(username)
    else:
        print("用戶已經被註冊")
#最原始的list取值方式,經過每次計算下標來獲取元素
passwords = ['123456','123123','7891234','password']
count = 0
while count < len(passwords):
    s = passwords[count]
    print(s)
    count+=1
passwords = ['123456','123123','7891234','password']
#for循環直接循環一個list,每次循環取它的值得
for p in passwords:
    print(p)
#修改passwords中的內容
passwords = ['123456','123123','7891234','password']
index = 0
for p in passwords:
    passwords[index] = 'abc'+p
    index+=1
print(passwords)
#使用枚舉函數,會計算下標和元素
passwords = ['123456','123123','7891234','password']
for index,p in enumerate(passwords):
    passwords[index] = 'abc' + p
    print(index, p)
print(passwords)

切片
切片一樣適合於字符串函數

l = ['a','b','c','d','e','f','g','h','i']
print(l[0:3]) #顧頭顧尾巴
print(l[:5]) #若是冒號前沒寫,表明從0開始取
print(l[4:]) #若是冒號後沒有寫,表明到結束
print(l[:]) #冒號先後都不寫,取所有
print(l[0:8:2]) #從0開始,算上每隔2取一個


nums = list(range(1,101)) #range()生成一個list
print(nums[1::2]) #取100之內的偶數
print(nums[::2]) #取100之內的奇數
print(nums[::-2]) #步長爲正數,從左到右取,步長爲負數,從右到左取

字符串切片google

#字符串切片
words = '中秋節要上課'
print(words[::-1])
for index,w in enumerate(words):
    print(index, w)

迴文算法spa

#迴文算法,反過來倒過去都同樣,如'上海自來水來自海上',12321
for i in range(10):
    str = input("請輸入一個字符串:")
    
    if len(str) < 1:
            print("字符串長度必須大因而")
    elif str == str[::-1]:
        print("是迴文")
    else:
        print("不是迴文")

元組

元組不能被修改,若是元組只有一個元素,須要在定義後添加逗號,否則會認爲括號是運算符
建立元組code

tup1 = ()
tup2 = (1,2,3,4,5,6)
tup3 = ('google','baidu',1000,2000)
tup4 = (50,)#元組中只有一個元素時,在後面添加逗號

訪問元組

tup = ('google','baidu',1000,2000)
print(tup[1])

修改元組

tup = ('google','baidu',1000,2000)
tup1 = ('abc','xyz')
tup3 = tup + tup1
print(tup3)

刪除元組

tup = ('google','baidu',1000,2000)
del tup

元組運算

#元組運算
print(len((1,2,3)))
print((1,2,3)+(4,5,6))
print(3 in(1,2,3))

for x in(1,2,3):
    print(x)

tup =(1,2,3,4,5)
len(tup) #求元組長度
max(tup) #求元組中最大值
min(tup) #求元組中最小值

seq = [1,2,3,4,5]
tup = tuple(seq) #將列表換爲元組

字典

xiaojun ={
    'name':'xioajun',
    'age': 21,
    'sex':'男',
    'addr':'北京',
    'phone':'13266568006'
}

增長

stus = {}
stus['name'] = '小軍'
stus['name'] = '海龍'
stus.setdefault('name', '小帆') #若是這個key已存在,setdefault不會修改這個key的值
stus.setdefault('age',  18)
stus.setdefault('sex', '男')
stus.setdefault('addr', '北京')
stus.setdefault('phone', '1961231231')
stus.update({'money':1000}) #將一個字典增長到stus中

修改

stus['name'] = '小鵬'

查詢

print(stus['addr'])
print(stus.get('sex','男')) #若是查不到,get()中第二個參數就返回默認值
print(stus.keys()) #全部的key
print(stus.values()) #全部的value

for k in stus:
    print(k, '===>',stus.get(k))

for k,v in stus.items():
    print(k, '====>', v)

刪除

del stus['phone']
stus.pop('addr')
stus.popitem() #隨機刪除
del stus #刪除整個字典

字典多層嵌套取值

all_stus = {
    'xiaojun':{
        'name': 'xiaojun',
        'age': 21,
        'sex': '男',
        'addr': '北京',
        'phone': '13266568006',
        'id': 1,
        'cars':['牧馬人','911','野馬','勞斯萊斯'],
    },
    'hailong':{
        'name': 'hailong',
        'age': 21,
        'sex': '男',
        'addr': '北京',
        'phone': '13266569006',
        'id': 2,
        'bags':{
            'qianbao':['lv', 'ysl'],
            'beibao':['coach','abc']
        }
    }
}

all_stus['xiaojun']['cars'].append('五菱宏光') #給xiaojun的car中添加值
print(len(all_stus['xiaojun']['cars'])) #統計xiaojun中car的數量
all_stus['hailong']['sex'] = '女'  #將hailong的sex改成女
all_stus['hailong']['bags']['qianbao'].remove('lv') #刪除bags中qianbao中的lv
all_stus['hailong']['bags']['kuabao']=['bac'] #增長一個kuabao
all_stus['hailong']['bags']['kuabao'].append('lv2') #在kuabao中增長lv2
all_stus['hailong']['bags'].pop('kuabao') #刪除kuabao

字符串經常使用方法

字串符一經定義,不會被改變,對其操做會從新生成一個被處理後的新字符串。

password = ' 123456 \n 456789 '
print(password.strip())  #默認去掉字符串兩邊的空格和換行符
print(password.rstrip()) #右邊的空格
print(password.lstrip()) #左邊的空格

password1 = 'jpg 1233456789 .jpg'
print(password1.strip('.jpg')) #掉去字符串兩邊的.jpg

print(password1.upper()) #轉成大寫
print(password1.lower()) #轉成小寫
print(password1.capitalize()) #把首字母改爲大寫
print(password1.count('jpg')) #字符串出現的次數
print(password.replace('譚愛玲','上山打老虎')) #找到了就替換字符串,找不到也不報錯

filename = 'a.mp3'
print(filename.endswith('.mp3')) #判斷是否以xxx結尾
print(filename.startswith('196')) #判斷以xxx開頭
#'{name},{age}'.format(name='hhh',age=18)

names = '小軍,海龍,楊帆,大朋'
names1 = '小軍 海龍 楊帆     大朋'
print(names.split(',')) #以分隔符將字符串分割成list
print(names1.split()) #不指定時默認以空格切割
users = ['username','user2','user3']
#username,user2,user3
print(str(users))
res = ','.join(users) #鏈接能夠循環的元素,和split()相反,把list變成了字符串
print(res) #結果爲username,user2,user3
print(s.find("z")) #找不到時返回-1
#print(s.index("z")) #找不到時報錯
print(s.count("z")) #找元素個數
print('0'.isdigit()) #判斷是不是正整數
print(s.islower()) #是否小寫
print(s.isupper()) #是否大寫
print('abc123'.isalnum()) #字符串中是否有英文或數字
print('abc'.isalpha()) #只能是字母
print(s.isspace()) #是否空格
print('1a123'.isidentifier()) #是否爲合法的變量名
print(s.splitlines()) #以換行符分割分字符串
new_l = []
for i in l:
    si = str(i)
    new_l.append(si.zfill(5)) #zfill()用於位數補0,會補足括號中位數
print(new_l)
import string
print(string.ascii_lowercase) #大寫
print(string.ascii_uppercase) #小寫
print(string.digits) #數字
print(string.punctuation) #特殊符號
print(string.ascii_letters) #大小寫
相關文章
相關標籤/搜索