for循環,列表,元組


依舊是python基礎

for循環

s = 'woeudbwieb'
for i in s:#s代表可迭代對象
    print(i)
if 'c' not in s:
    print('沒有c')

列表

每個元素以逗號隔開,可以放任意的數據類型,有序
切片和索引跟字符串相同

常用操作

# 增加
li = ['jiang','chengcheng']
li.append('judy')
print(li)

# 迭代增加
li = ['jiang','cheng']
li.extend('123')#參數為可迭代對象,分解成元素逐個添加到列表后面
# 小練習,循環增加列表
li = ['jiang','chengcheng']
while 1:
    new = input('input new :')
    if new=='q':
        break
    else:li.append(new)
print(li)
# 插入
li = ['jiang','chengcheng']
li.insert(1,'12')#插入到索引值的前面
print(li)
# 刪除
li = ['jiang','chengcheng',1,2,3,4]
li.pop() #按索引刪除,默認刪除最后一個,返回刪除元素
li.remove('dudu') #按元素刪除,沒有返回值
li.clear() #清空列表
del li #在內存中刪除整個列表
del li[2:]#切片刪除
# 修改
li = ['jiang','chengcheng',1,2,3,4]
li[2] = 'hlb'

# 切片修改
li[2:4] = 'i am beatiful girl'#任意多個字符
print(li)
# 排序(列表中元素是同一類型)
list = [1,2,3,4,7,6,5,8,0,9]
list.sort(reverse=True)#默認false->正向排序
list.reverse()#反轉
# 列表嵌套
list = [['jiang','cheng','cheng'],'is','a','beautiful','girl']
#循環打印嵌套列表
l = [1,2,3,5,'jcc',[1,5,3],'beauty']
for i in l:
    if isinstance(i,list):
        for j in i:
            print(j)
    else:print(i)

list在循環中刪除的狀況

#測試循環中刪除元素
list1 = [1,2,3,4,5]
for i in range(len(list1)):#進入循環時range(len(list1))的數值已經固定,[0,1,2,3,4]
    print(i)
    del list1[i]#i = 3時報錯,IndexError: list assignment index out of range
    print(list1)
    
for i in range(len(list1)):
    if i%2!=0:
        list1.remove(list1[i])
print(list1)#雖然沒有報錯,但是結果是錯誤的
#刪除奇數位的元素
#1.list的切片
print(list1[::2])
# 2.
list2 = []
for i in range(len(list1)):
    if i%2==0:
        list2.append(list1[i])
list1 = list2
print(list2)
print(list1)

元組

可循環,可切片,不可修改

可變數據類型:列表list,字典dict,集合set 不可hash
不可變數據類型:元組tuple,bool,int,str 可hash

常用操作

tuple = (1,2,3,'jiang','cheng','cheng',['is','a','beautiful','girl'])
tuple[0] = '1'#報錯,不可修改
tuple[6][2] = 'handsome'#可以修改

join

s = 'jcc'
lis = ['1','2','3']#list里邊只能放字符串,不能放數字,且不能嵌套
s1 = '*'.join(lis)#可以放可迭代對象,以*連接元素,形成一個新的字符串

range

for i in range(0,10,2):#打印
    print(i)
for i in range(10,1,-1):#倒敘打印2-10
    print(i)
for i in range(1,10,-1):#不會報錯,什么都不打印
    print(i)

字典

key必須是不可變數據類型
優勢:key值組成hash表,二分方法查找,查詢速度快
存儲大量的關系型數據
無序

常用操作

#字典 dict
dic = {'age':19,'name':'jcc'}
dic1 = {'age':22}
#增加
dic['high'] = 160
dic.setdefault('weight',49)
#修改
dic['name'] = 'jiangcc'
dic.update(dic1)#把dic1中的鍵值對更新到dic中,有就改,沒有就不改
dic.setdefault('weight',50)#不做改變,體重增加一公斤都不行
#刪除
dic.pop('age')#刪除有返回值,返回刪除的元素
dic.popitem()#隨機刪除
dic.clear()#清空字典
del dic['name']#刪除鍵值對,沒找不到會報錯
#
dic.keys()#得到一個和列表相似的數據類型,把字典中的鍵放入
dic.values()#得到一個和列表相似的數據類型,把字典中的值放入
dic.items()#得到一個列表里邊 嵌套多個元組
View Code
# 循環鍵值對
for k,v in dic.items():
    print(k,v)
print(dic.get('name1'))#如果沒有查到不報錯,返回None
v = dic['name1']#查不到報錯
# 字典嵌套
dic = {
    'name':['jcc','hlb'],
    'hobby':{
        'boy':'cool'
    },
    'age':18
}
dic['age'] = 16
dic['name'].append('jiangchengcheng')
dic['name'][0] = 'JCC'
print(dic)
View Code

一些小知識

# 用一行代碼交換ab的值
a,b = 1,2
print(a,b)
a,b = b,a
print(a,b)
#當數字在-5-256之間 創建多個數字的地址相同,因為有小數據池
i1 = 6
i2 = 6
#內存地址相同
i3 = 300
i4= 300
#內存地址不相同

=,== is

= ->賦值
== ->比較值是否相等
is ->比較內存地址是否相等
id()-->查看內存地址

 

 

17:42


免責聲明!

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



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