一、字符串容器(string)
1.#for循环遍历字符串 My_str = 'hi,你好' for v in My_str: print(v,end='')
输出:
2.#replace替换函数 my_string = '寻寻觅觅,冷冷清清,柒柒惨惨戚戚' print(my_string) #还未替换前 print(my_string.replace('柒','凄',2)) #替换后重新生成一个字符串,2代表替换两次
输出结果:
字符串(string)特点:
1、字符串一旦定义不允许修改(赋值)
2、字符串容器里面的元素都是字符类型
字符串切片案例:(切片语法:左闭右开)
#-----------------------------方法一(find) email = 'chenroubao@IT.com' #如果查找到,返回子串第一次出现的位置;找不到就返回-1 position = email.find('@') if position == -1: print('不存在@!') else: left = email[:position] right = email[position+1:] print('左边是:',left) print('右边是:',right) print('逆序输出:',email[::-1])#-------逆序输出
输出结果:
#--------------方法二(split) email = 'chenroubao@IT.com' count = email.count('@') if count == 1: result = email.split('@') print('左边是:',result[0]) print('右边是:',result[1]) else: print('邮箱不合法!')
输出结果:
二、列表容器(list)
1 #插入删除函数 2 my_list = [] 3 4 #append在尾部插入元素 5 my_list.append(1) 6 my_list.append(2) 7 my_list.append(3) 8 my_list.append(4) 9 print(my_list) #[1,2,3,4] 10 #insert 在指定位置插入 11 my_list.insert(2,1) 12 print(my_list) #[1,2,1,3,4] 13 #pop 用于位置删除,默认删除最后一个元素 14 my_list.pop() 15 print(my_list) #[1,2,1,3] 16 my_list.pop(3) 17 print(my_list) #[1,2,1] 18 #remove 根据值删除,默认删除第一个出现的值 19 my_list.remove(1) 20 print(my_list) #[2,1] 21 #clear 清空 22 my_list.clear() 23 print('列表长度:',len(my_list)) #列表长度:0
1 #排序函数 2 #产生10个随机数 3 import random 4 list = [] 5 i = 0 6 while i < 10: 7 random_shu = random.randint(1,10) 8 list.append(random_shu) 9 i += 1 10 print(list) 11 #sort排序 默认升序 (设置reverse=True降序) 12 list.sort() 13 print(list) 14 #reverse逆序输出 15 list.reverse() 16 print(list)
#extend扩大 用于两个list合并 list = [1,2] list2 = [3,4] list.extend(list2) print(list) #输出:[1,2,3,4]
列表(list)优缺点:
优点:
支持位置删除(尾部删除、指定位置删除)和值删除
尾部插入和删除效率更高,原因是:不需要移动元素
指定位置插入和删除效率较低,原因是:需要移动元素,元素越多,效率越低
缺点:
查找效率低(列表是序列式存储的,假如查找的元素位置在最后,那相当于把整个列表都查了一遍才找的出来,所以效率低。)
但是指定位置的查找效率是高的。
三、元祖(tuple)
#元祖的定义 tuple = ((1,),) print(tuple) #输出: ((1,))
元祖(tuple)特点:
不支持修改,只支持遍历、查找
元祖内只有一个元素时,加,(逗号)
元祖比列表更节省空间
元祖是序列式容器,支持索引、切片操作
四、字典(dict)
def test(): #字典定义 my_dict = {'name':'obama','age':18,'sex':'男'} print(my_dict.get('name1','key不存在,这里是默认值')) #key不存在,就添加元素;存在就是修改元素 my_dict['score'] = 100 print(my_dict) test()
输出结果:
1 #字典遍历 2 my_dict = {'name':'obama','age':18,'sex':'男'} 3 for val in my_dict: 4 print(val) #输出键,没有值 5 key = my_dict.keys() 6 print(list(key)) #按列表输出键 7 val = my_dict.values() 8 print(list(val)) #按列表输出值 9 key_value = my_dict.items() 10 print(list(key_value)) #输出键值对 11 for keyval in key_value: 12 print('key:',keyval[0],'value:',keyval[1])
输出结果:
1 # while循环遍历字典 2 my_dict = {'name':'obama','age':18,'sex':'男'} 3 list = list(my_dict.items()) 4 i = 0 5 while i < len(list): 6 print('key:',list[i][0],'value:',list[i][1]) 7 i += 1
输出结果:
字典(dict)特点:
字典是非序列式容器,不支持索引、切片
查找效率高,空间占用较大。以空间换时间