数据类型补充

一、字符串

print('姓名{name},年龄{age}'.format_map({'age':26,'name':'aaron fan'}))  # 以字典的形式传送,结果同format

二、元祖

tu = ('name')
tu1 = ('name',)
print(tu,type(tu))  # name <class 'str'> 一个小括号括起来的数据,只要不加逗号,本来是什么类型还是什么类型
print(tu1,type(tu1))  # ('name',) <class 'tuple'>

三、列表

当循环列表时,如果在循环中删除某个或者某些元素,列表元素个数改变,索引改变,容易出错
# 删除列表中索引为奇数的元素
li = [11,22,33,44,55]
# 方法一
 del li[1::2]
 li = li[0::2]
 print(li)
# 方法二
 for i in range(len(li)//2):
     del li[i+1]
 print(li)
# 方法三
 for i in range(len(li)-1,0,-1):
     if i % 2 == 1:
         del li[i]
 print(li)

四、字典

# fromkeys
dic = dict.fromkeys([1,2,3],'abc')
dic1 = dict.fromkeys('abc','abc')
print(dic)  # {1: 'abc', 2: 'abc', 3: 'abc'}
print(dic1)  # {'a': 'abc', 'c': 'abc', 'b': 'abc'}
dic = dict.fromkeys(['barry','alex'],[])
print(dic)  # {'alex': [], 'barry': []}
dic['barry'].append(11)
print(dic)  # {'alex': [11], 'barry': [11]}  可以看出两个键是共用的一个列表
当循环字典时,如果在循环中删除键值对,字典的键值对个数改变,长度改变,会报错
# 删除字典中键里还有'k'的键值对
dic = {'k1':'barry','k2':'alex','name':'ritian'}
# li = []
# for i in dic:
#     if 'k' in i:
#         li.append(i)
# for x in li:
#     del dic[x]
# print(dic)

for i in dic.copy():
    if 'k' in i:
        del dic[i]
print(dic)

五、转换

# 元祖与列表之间转换
tu = (1,2,3)
l = list(tu)
print(l,type(l))

li = [4,5,6]
print(tuple(li),type(tuple(li)))

# 字符串转换列表、元祖
print(list('abc'))  # ['a', 'b', 'c'] 迭代转换
print(tuple('abc'))  # ('a', 'b', 'c') 迭代转换

 



posted on 2017-10-27 14:23  杨小天  阅读(89)  评论(0)    收藏  举报