关于作业:老师说,要改掉C里面喜欢在前面加变量进行判断的习惯,在python里面用for就很好,
这里用两种方式,清除空白字符,python里面要改为第一种方式,
li = ['taibai ','alexC','AbC ','egon',' Ritian',' Wusir',' aqc']
# for x in range(len(li)):
# li[x] = li[x].strip()
# print(li[x])
n = len(li)
m = 0
while m<n:
li[m]=li[m].strip()
m+=1
lis = [2,3,‘k’,[‘qwe’,20,[‘k1’,[‘tt’,3,’1’]],89],’ab’,’adv’]
1)将列表lis中的’tt’变成大写(用两种方式)。
lis[3][2][1][0]=lis[3][2][1][0].upper() #ok
两种方式的意思是,通过直接赋值,或者upper()函数等方式,别想太多。
li = ['taibai ','alexC','AbC ','egon',' Ritian',' Wusir',' aqc']
l1 = []
for i in li:
i = i.strip()
if i[0].upper() == 'A' and i[-1] == 'c':
l1.append(i)
print(l1)
l1 = []
for i in li:
i = i.strip()
if (i.startswith('A') or i.startswith('a')) and i.endswith('c'):
l1.append(i)
print(l1)
#题目是判断以字母A或a开头的,并且以c结尾,因为字符串的比如upper()并不改变原有值,所以第一种更简洁,学习了!!!
replace默认是替换所有,若是替换所有你在指定数量,就多余了,
def replace(self, old, new, count=None): # real signature unknown; restored from __doc__
"""
S.replace(old, new[, count]) -> str
Return a copy of S with all occurrences of substring
old replaced by new. If the optional argument count is
given, only the first count occurrences are replaced.
"""
return ""
key-value
储存大量的数据,而是关系型数据,查询速度快,因为是哈希的,哈希的结果是有唯一对应的值
数据类型分类:
可变数据类型(不可哈希):list,dict,set。
不可变数据类型(可哈希):int,bool,str,tuple.
字典的键:不可变数据类型。
字典的值:任意数据类型。
容器类型:
容器类(承载各种数据类型):list,tuple,dict。.
字典的键是唯一的。
字典的顺序:
3.5之前,字典是无序的。
3.6开始,字典创建的时候,按照一定的顺序插入的数值,看起来是有序的。
字典定义的时候,重复的key,后者的值会覆盖前者,
dic = {"name":"jin",
"age":18,
"sex":"male",
}
# dic['hobby'] = 'girl' #前面有hobby,就是修改,没有就是添加一个新的
# dic.setdefault('name','foot') #有则不变
# dic.setdefault('hobby','foot') #无则添加
#print(dic.pop('name')) #删除并返回对应的值
#print(dic.pop('TUTU')) #若是pop不存在的key,就会报错,
# print(dic.pop('TUTU','return')) #需要我们手动指定一个值,就不会报错了,
#dic.clear() #清空字典了,
# del dic #删除字典,后面再打印就会报错
# del dic['name'] #删除某个,若是不存在会报错
# print(dic.popitem()) #多次运行,结果会不一样,
dic = {"name":"jin","age":18,"sex":"male"}
dic2 = {"name":"alex","weight":75}
dic2.update(dic) # 将dic键值对,覆盖并添加到dic2
# print(dic)
print(dic2)
#打印dic2结果是{'sex': 'male', 'age': 18, 'name': 'jin', 'weight': 75},
#总结,用dic来更新dic2,dic2中有的key,就更新它的值,没有的key,就添加进来
print(dic.get('name1','咩有此键值对')) # 默认返回None,通过[]访问的话,没有就会报错,
# 字典的三个方法,keys(),values(),items()
print(dic.keys(),type(dic.keys()))
li = list(dic.keys()) #直接把key转化为列表,
a,b = 2,3
print(a,b)
a,b = (2,3)
print(a,b)
a,b = [2,3]
print(a,b)
a = 4
b = 5
a,b = b,a
print(a,b)
for k,v in dic.items():
print(k,v)
#字典的嵌套,pass吧,感觉没必要再贴了,
# print(dic.popitem()) #多次运行,结果会不一样,
#这里再多说点,py3.5以前,因为字典是无序的,所以这个返回是不一样的,
# 但是3.6以后,优化了,“有点顺序了”,所以就返回最后一个值了,
dic = {"name_list":['张三','lisi','隔壁王叔叔'],
'dic2':{'name':'太白','age':12},
}
# 1 ,给列表追加一个元素:'旺旺'
l1 = dic['name_list']
l1.append('旺旺')
print(dic)
#运行结果,
#{'dic2': {'age': 12, 'name': '太白'}, 'name_list': ['张三', 'lisi', '隔壁王叔叔', '旺旺']}
#这里可以体现列表是全局可用的吗?
关于这个列表,全局,可变,等再补充说明,
>>> l = ['s', 's', 's', 's']
>>> l1 = l
>>> l2 = ["123"]
>>> id(l)
2585132304712
>>> id(l1)
2585132304712
>>> id(l2)
2585132973512
>>> l2 = l1
>>> id(l2)
2585132304712
>>> #打印的id值,除了第三个,其它3个都一样
>>> #这里提出两个点,一个是引用,一个是新创建,
>>> #像开始的l1就是对l的引用,所以id一样,
>>> #l2是单独创建的,所以id不同于l和l1,
>>> #之后l2又引用了l和l1的共同引用的对象,所以这时的id和他们一样