数据类型补充

数据类型之间的转换

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)
原文地址:https://www.cnblogs.com/zhangxiangning/p/10491642.html