数据类型之间的转换
int bool str tuple dict set
"int bool str"他们三者时可以转换的
bool 可以与所有的数据类型进行转换
所有为空的数据类型转换成bool 都为False
0 '' [] () {} None --->>False
print(bool([]))bool([])--->False
str --> list split 分割
list --> str join # list 里面的元素全部都是str 类型
l1 = ['武sir' , 'alex' , '太白'] print(' '.join(l1))
str --> tuple partition
tuple --> str join
tu1 = ('武sir' , 'alex' , '太白') ret = ' '.join(tu1) print(ret,type(ret))
list <----> tuple
l1 = ['武sir' , 'alex' , '太白'] print(tuple(l1)) tu1 = ('武sir' , 'alex' , '太白') print(list(tu1))
dict --> list
dic = {'name' :'alex','age' :65} print(list(dic1))
tuple : 如果元祖中只有单个元素的话并且没有 , 则类型是元素本身的类型
tu1 = (1) tu1 = (1,) tu1 = ('alex') print(tu1,type(tu1))
fromkeys:将同一个 值 添加给 多个键(键必须是可迭代)
dic = dict.fromkeys([1,2,3],'太白') dic = dict.fromkeys('abcd','太白') dic = dict.fromkeys('abcd',[1,]) print(dic)
坑!!!
如果的的值是一个可变的数据类型,它在内存中是同一个, ID相同
dic = dict.fromkeys('abcd',[]) dic['a'].append(6) dic['b'].append(11) dic['c'].append(2) print(dic) #{'a': [6, 11, 2], 'b': [6, 11, 2], 'c': [6, 11, 2], 'd': [6, 11, 2]}
有坑的题
l1 = [11, 22, 33, 44, 55] # 将此列表索引为奇数位对应的元素全部删除. del l1[1::2] print(l1) l2 = [] for i in range(len(l1)): if i % 2 == 0: l2.append(l1[i]) l1 = l2 print(l1) #偷换概念的一种方法 for i in range(len(l1)-1,-1,-1): if i % 2 == 1: l1.pop(i)
**循环一个列表时,最好不要対原列表有改变大小的操作,这样会影响你的最终结果!!!!
dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'name': 'alex'} # 将字典中的key中含有k元素的所有键值对删除. for key in dic: if 'k' in key: dic.pop(key) print(dic) #报错,不能这样做!!! l1 = [] for key in dic: if "k" in key: l1.append(key) print(l1) for key in l1: dic.pop(key) print(dic)