python-day4~5_list_dict
1,list
li = ['alex','wusir','egon','女神','taibai']
#增加 append insert,extend是迭代(即分拆)加入
# li.append('日天')
li.insert(4,'春哥') # 在索引位4前插入
# li.extend('二哥') # 以迭代方式尾部加入
# li.extend([1,2,3])
删除
li.pop(1) #按索引值删除,默认删最后一个值。会返回删除的值
li.remove('taibai') # 按元素去删除
li.clear() #清空
del li[2:] #按切片范围删除
改
li[0] = "男神"
li[0:2] = "男神" #按右边值分拆后迭代改
li[3] = li[3].replace("神","日天")
查
print(li[1][1])
排序
li.sort() #升序
li.sort(reverse=True) #降序
li.reverse() #反转
print(li)
2,元组tuple
#元祖 只读列表,可循环查询,可切片。
#儿子不能改,孙子(列表)可能可以改。
tu = (1,2,3,"alex",[3,5,"taibai"],"egon")
3,
# s = 'alex'
# s1 = 'sb'.join(s) #将方法内的值,进行迭代分拆后,用前面字符连成一个字符串
# print(s1)
#列表转化成字符串 list -----> str join
# li = ['taibai','alex','wusir','egon','女神',]
# s = '++++'.join(li)
#str ----->list split()
# li1 = s.split('.')
# for i in range(3,10): #顾头不顾尾
# print(i)
# for i in range(10): #打印0~9
# print(i)
# for i in range(0,10,3): #步长是3
# print(i)
for i in li: if type(i) == list: for i2 in i: print(i2) else: print(i)
作业:



4,dict字典
#数据类型划分:可变数据类型,不可变数据类型
可变数据类型:value值改变,id值不变,即相同内存空间放了新的值进去;不可变数据类型:value值改变,id值也随之改变,即指向到新的值的内存空间。
不可变数据类型:元组,bool int str 可哈希
可变数据类型:list,dict set 不可哈希
dict key 必须是不可变数据类型,可哈希,
value:任意数据类型。
dict 优点:二分查找去查询
存储大量的关系型数据
特点:无序的
i = 22
print(id(i))
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
按照“键”进行操作
增:
# dic1['high'] = 185 #没有键值对,添加
# dic1['age'] = 16 #如果有键,则值覆盖
# dic1.setdefault('weight') # 已有键值对,不做任何改变,没有才添加。
# dic1.setdefault('weight',150)
# print(dic1)
dic1.update({'tel':'1234'}) #如存在,更改值,如不存在,则添加到dic1里面
删:
print(dic1.pop('age')) # 按键去删除,返回对应的值。如键不存在会报错
print(dic1.pop('name',None)) # 键不存在不会报错
del dic1['name'] # 按键删除,如键不存在会报错
print(dic1.popitem()) # 随机删除 有返回元组值 里面是删除的键值。
del dic1['name1'] # 按键删除,如键不存在会报错
del dic1 # 删除字典
dic1.clear() #清空字典
查:
# print(dic1.keys(),type(dic1.keys()))
# print(dic1.values())
# print(dic1.items())
# print(dic1.get('name1','没有找到这个键')) #找到则返回值,没有找到则为None或按指定提示
输出键
# for i in dic1:
# print(i)
# for i in dic1.keys():
# print(i)
输出值
# for i in dic1.values():
# print(i)
# v2 = dic1['name1'] # 如键不存在程序会报错
# print(v2)
print(dic1.get('name1','没有这个键')) # 如键不存在,则返回设置的值
5,dict嵌套
dic = {
'name':['alex','wusir','taibai'],
'py9':{
'time':'1213',
'learn_money':19800,
'addr':'CBD',
},
'age':21
}
# dic['age'] = 56
# print(dic['name'])
# dic['name'].append('ritian') # 增加列表条目
# dic['name'][1] = dic['name'][1].upper() # 变更值内容
# print(dic)
#female : 6
# dic['py9']['female'] = 6 # 增加字典条目
dic['py9'].setdefault('female',6)
# print(dic)
# fhdklah123rfdj12fdjsl3 ' 123 12 13'
info = input('>>>').strip()
for i in info:
if i.isalpha():
info = info.replace(i," ") # 这个info,不是循环外的info
l = info.split()
print(len(l))




浙公网安备 33010602011771号