元组,是只读列表,不能增删改查,也是一个容器,可以存入任何数据类型 存储的是什么数据类型,取出来的时候,也就是什么数据类型 而字符串就不是容器,在字符串只是一个一个的字符 但注意:只是说,不能对儿子更改,对孙子可以改 ''' tuple1 = (123,'alex',('xx','yy'),['ab','cd',12],{'name':'jingxin','job':'teahcer'}) print(tuple1) # 对于 tuple 而言,它的儿子不能改,但孙子能改,例如:['ab','cd',12]是tuple儿子,整个不能改,但可以改列表中的元素 tuple1[3][0]= 'AB' print(tuple1) print(tuple1[3][0]) 输出结果: (123, 'alex', ('xx', 'yy'), ['ab', 'cd', 12], {'name': 'jingxin', 'job': 'teahcer'}) (123, 'alex', ('xx', 'yy'), ['AB', 'cd', 12], {'name': 'jingxin', 'job': 'teahcer'}) AB
li = ["alex","WuSir","ritian","barry","wenzhou"] li.extend([1,"a",3,4,"heart"]) # extend() 迭代着增加 li.append([1,"a",3,4,"heart"]) # 将列表整体追加到最后
for i in range(10,-1,-1): print(i) 输出结果: 10 9 8 7 6 5 4 3 2 1 0 Process finished with exit code 0
列表,是容器,可以存储大量的数据,并且可以任意数据类型,可进行增删改查 容器,可以存储任意数据类型,存进去是什么数据类型,取出来也是什么类型, 这是与其它数据类的区别 比如:字符串类型,存储进去的,取出来都是一个个字符 ''' # test_list = [133,'snake',True,['a','b','c'],(23,35,'joke'),{'date':'1988/6/7','hook':'jeason'}] # print(test_list) # print( test_list[0],type(test_list[0]) ) # 输出结果:133 <class 'int'> # print(test_list[1],type(test_list[1])) # 输出结果: snake <class 'str'> # print(test_list[-1],type(test_list[-1])) # 输出结果:{'date': '1988/6/7', 'hook': 'jeason'} <class 'dict'> # print(['a','b','c'],type(['a','b','c'])) # 输出结果:['a', 'b', 'c'] <class 'list'> # # test_str = "['a','b','hover']" # 从形式上看好像是把一个列表存储到字符串中 # print(test_str) # print(test_str[0],type(test_str[0])) # 实际上都是一个个字符,取出来都是字符串类型 # s = ['alex','taibai','nv','日天'] # s[:2] = 'sbcbf' # print(s) # # l2 = [1,3, 8, 5, 7, 2,9] # # l2.sort() # 从小到大排序,即升序 # # print(l2) # # # l2.sort(reverse=True) # 从大到小排序,即降序 # # print(l2) # l2.reverse() # print(l2) # 将列表反转 # l1 = ['alex','wusir','taibai','egon','景女神'] # print(l1) # # 对列表的只剩,增删改查 # # 增 # # append() 追加到列表的最后 # l1.append('小温老师') # print(l1) # l1.insert(2,'chris') # 通过索引,在指定位置插入元素 # print(l1) # # extend 迭代着追加 ,将可迭代对象的组成单元追加到最后 # l1.extend('Hjk') # print(l1) # l1.extend(['abb','joke']) # print(l1) # 删除 # l2 = ['alex','chris','john','carrot','大学城'] # ret = l2.pop(0) # pop() 按照索引去删除,列表的唯一有返回值的函数 # print(ret) # 返回值 # print(l2) # # l2.remove('chris') # remove 按照元素去删除 # print(l2) # # l2.clear() # 清空列表的元素 # print(l2) # 输出结果: [] # # # del 删除, 是一个关键字 # l2 = ['alex','chris','john','carrot','大学城'] # del l2[0] # 按照索引删除元素 # print(l2) # # l2 = ['alex','chris','john','carrot','大学城'] # del l2[1:4] # 按照切片删除元素 # print(l2) # # l2 = ['alex','chris','john','carrot','大学城'] # del l2[0::2] # 按照切片 + 步长删除元素 # print(l2) # # l2 = ['alex','chris','john','carrot','大学城'] # del l2 # 删除整个列表,在内存级别的删除 # print(l2) # 输出结果: NameError: name 'l2' is not defined # 改 # l2 = ['alex','chris','john','carrot','大学城'] # l2[1] = '男神' # 按照索引去更改 # l2[-2] = '日天' # print(l2) # 按照切片去更改 # l2 = ['alex','chris','john','carrot','大学城'] # l2[:3] = 'sbNB' # 输出结果:['s', 'b', 'N', 'B', 'carrot', '大学城'] ''' 背后的工作原理: 首先,将切片对应的范围的原元素删除掉,然后将赋值符号右边的 可迭代对象的元素,迭代着增加到列表;可迭代对象的元素个数没有限制。 ''' # print(l2) # l2 = ['alex','chris','john','carrot','大学城'] # l2[3:5] = ['taibai','oldBoy','Eva_j'] # 输出结果:['alex', 'chris', 'john', 'taibai', 'oldBoy', 'Eva_j'] # print(l2) # 按照切片 + 步长去更改 # l3 = ['alex', 'chris', 'john', 'taibai', 'oldBoy', 'Eva_j'] # l3[1:6:2] = 'GOD' # 输出结果:['alex', 'G', 'john', 'O', 'oldBoy', 'D'] # l3[1:6:2] = ['jinxin','孙悟空','司徒大人','党参'] # ValueError: attempt to assign sequence of size 4 to extended slice of size 3 ''' 注意事项: 按照切片 + 步长 的方式去更改,当步长大于1时,即大于等于2时,用于赋值的可迭代对象的元素个数,与切片个数匹配,即一一对应 ''' # print(l3) ### 查 # # 可按索引,切片,切片 + 步长 去查 # 可以用for 循环去查 #### 其它方法 ##### # l3 = ['alex', 'chris', 'john', 'taibai', 'oldBoy', 'Eva_j'] # print(len(l3)) # len() 公共方法,求对象的长度或叫大小 # print(l3.count('chris')) # count() 统计元素出现的次数 # print( l3.index('taibai') ) # index()方法,查找指定元素第一次出现在列表的索引 # l3 = ['alex', 'chris', 'john', 'taibai', 'oldBoy', 'Eva_j','taibai'] # print( l3.index( 'taibai' )) # 输出结果:同样是3 # l5 = [5,7,2,8,3,9,1] # 这样写也可以,但不清晰,一目了然 # l5 = [5, 7, 2, 8, 3, 9, 1] # l5.sort() # 默认 从小到大 进行排序 # print(l5) # l6 = [5, 7, 2, 8, 3, 9, 1] # l6.sort(reverse=True) # 将参数reverse设置为布尔值True,则 从大到小 排序 # print(l6) # l7 = [5, 7, 2, 8, 3, 9, 1] # l7.reverse() # 将列表反转 # print(l7) # 输出结果:[1, 9, 3, 8, 2, 7, 5] ### 元组 tuple #### ''' 元组,是只读列表,不能增删改查,也是一个容器,可以存入任何数据类型 存储的是什么数据类型,取出来的时候,也就是什么数据类型 而字符串就不是容器,在字符串只是一个一个的字符 但注意:只是说,不能对儿子更改,对孙子可以改 ''' tuple1 = (123,'alex',('xx','yy'),['ab','cd',12],{'name':'jingxin','job':'teahcer'}) # print(tuple1) # # 对于 tuple 而言,它的儿子不能改,但孙子能改,例如:['ab','cd',12]是tuple儿子,整个不能改,但可以改列表中的元素 # tuple1[3][0]= 'AB' # print(tuple1) # print(tuple1[3][0]) # range 用来产一个自定制的 数字范围的,可迭代对旬, 类似于列表 # print(range(10),type(range(10))) # 输出结果:range(0, 10) <class 'range'> # for i in range(10): # 默认从0开始,顾头不顾尾 # print(i) # print("华丽的分隔线".center(100,'*')) # for i in range( 5,10): # 指定开始值 ,和终值 # print(i) # print("华丽的分隔线".center(100,'#')) # for i in range(1,10,2): # 指定开始值,终值,步长 # print(i) # 1, 找到alex的e元素。 # 2, 将wusir变成大写。 # 3, 给此列表['taibai',99,'ritian'] 追加一个元素,'文周' # 4,将 'taibai' 首字母大写 # 5,将 99 通过数字加1 的方式变成100,并放回原处。 # l3 = ['alex', 'wusir', ['taibai',99,'ritian'], 20] # # #1,找到alex的e元素 # alex_index = l3.index('alex') # print( l3[alex_index].find('e') ) # # 2, # wusir_index = l3.index('wusir') # l3[wusir_index] = l3[wusir_index].upper() # print(l3) # #3. # subList_index = l3.index(['taibai',99,'ritian']) # l3[subList_index].append("文周") # print(l3) # #4 # taibai_index = l3[subList_index].index('taibai') # l3[subList_index][taibai_index] = l3[subList_index][taibai_index].capitalize() # print(l3) # #5 # index_99 = l3[subList_index].index(99) # l3[subList_index][index_99] = l3[subList_index][index_99] + 1 # print(l3) # # # tuple # range(1,10) # print(range(1,10)) # l4 = ['alex', 'wusir', ['taibai',99,'ritian'], 20] # # for i in range(0,len(l4)): # print(i,l4[i]) # # print( 'alex' in l4 ) # l4[0:2:1] = 'sbcfd' # print(l4) #l4[:2:2] = 'abcef' # ValueError: attempt to assign sequence of size 5 to extended slice of size 1 # slogan = 'abcdef'# 输出asb,bsb,csb,...fsb # is_first = True # 设置第一次进入循环标志位 # msg = '' # for item in slogan: # if is_first: # msg += item # is_first = False # else: # msg += 'sb\n' + item # print(msg + "sb")
li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"] 循环打印列表中的每个元素,遇到列表则再循环打印出它里面的元素。 我想要的结果是: 1 3 4 "alex" 3 7, 8 "taibai" 5 ritian ''' # li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"] # for child in li: # if isinstance(child,list): # for i in child: # print(str(i).lower()) # else: # print(str(child).lower()) ####### 方法二 ######################################### # li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"] # for child in li: # if type(child) == list: # for grandChild in child: # print(str(grandChild).lower()) # else: # print(str(child).lower())