数据类型的补充

# 数据类型的补充
# 1.元组:元组里面只有一个元素且没有逗号,则,该数据的数据类型是里面的元素的数据类型
# tu1=('我爱北京天安门')
# tu2=('我爱北京天安门',)
# print(tu1,type(tu1))
# print(tu2,type(tu2))
# 结果是:
# 我爱北京天安门 <class 'str'>
# ('我爱北京天安门',) <class 'tuple'>

# tu1 = ([1, 2, 3])
# tu2 = ([1, 2, 3],)
# print(tu1, type(tu1))
# print(tu2, type(tu2))
# 结果:[1, 2, 3] <class 'list'>
# ([1, 2, 3],) <class 'tuple'>


# 思考:tu1 = ([1, 2, 3,4]) 是什么数据类型,可以删掉元素[1,2,3]吗?
# 答:列表,可以


# 2.列表:再循环一个列表时,最好不要改变列表的大小(修改列表),否则会影响你的最终结果
# 因为对列表增加和删除元素后,会影响后续元素的的索引。
# 思考:如何把下面列表中索引为奇数的所有元素全部删除?
li=[1,2,3,4,5,]
# 方法一:
# del li[1::2]

# 方法二:(错误展示)
# for index in range(len(li)): #不管以后li怎么变化,都已经确认了index为0,1,2,3,4
# if index % 2 == 1:
# del li[index] #这个题切好index为4时,也没有超过里的最大索引,
# print(li) 但如果增加li里面的元素,就会超出,结果就会报错
# 结果:[1, 3, 4]

# 方法三:(利用二方法,如果我从后面开始删除,那么前面元素的索引就不会受到影响。)
# for index in range(len(li)-1, -1, -1):k
# if index % 2 == 1:
# del li[index]
# print(li)

# 3.字典,在循环dict中,最好不要改变dict的大小,否则会影响结果或出错
# eg:把下面的列表中包含’k‘的键的键值对全部删除:
# dic = {'k1': 'v1', 'k2': 'v2','k3': 'v3','男神': '管松松'}
# # 方法1:(错误)
# for i in dic:
# if 'k' in i:
# del dic[i]
# print(i)
# # 结果:错误:dictionary changed size during iteration(字典在迭代期间更改了大小)

# 方法二: 把相关的键放到一个列表里面
# dic = {'k1': 'v1', 'k2': 'v2','k3': 'v3','男神': '管松松'}
# li=[]
# for i in dic:
# if 'k' in i:
# li.append(i)
# for key in li:
# del dic[key]
# print(dic)
# 结果:{'男神': '管松松'}






# 4.字典的fromkeys
# 格式:dic=dict.fromkeys(可迭代对象,)value
# value就成为了每个键的值了,这么多的值只有一个内存地址。
# dic=dict.fromkeys('孙悟空', '妖怪')
# print(dic)
# 结果:{'孙': '妖怪', '悟': '妖怪', '空': '妖怪'}

# 所有的value值,都是一个内存地址
# dic=dict.fromkeys([1,2,3],[])
# dic[1].append(666)
# print(dic)
# 结果:{1: [666], 2: [666], 3: [666]} 全部都增加了[666]



# 5.数据类型的转换:
# 数据类型的转换:
# ①字符串与列表
# str ---> list split
# list --> str join 条件:列表里全都是字符串
#
#
# ②元组与列表
# tuple ---> list
# tu1 = (1, 2, 3)
# l1 = list(tu1)
# print(l1)
#
# list-----> tuple
# tu2 = tuple(l1)
# print(tu2)
#
# ③字典与列表 注意:字典可以转换为列表(列表中的元素只有key),但是列表不能转换为字典
# dic = {'k1': 'v1', 'k2': 'v2','k3': 'v3',}
# l1 = list(dic)
# print(l1)
# 结果:['k1', 'k2', 'k3']

#
# 三种类型:
# dic.keys() dic,values() dic.items()
# dic = {'k1': 'v1', 'k2': 'v2','k3': 'v3',}
# print(list(dic.keys()))
# print(list(dic.values()))
# print(list(dic.items()))
# 结果:['k1', 'k2', 'k3']
# ['v1', 'v2', 'v3']
# [('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')]

# 6.0, '', [], () {} ---> bool 都是Fasle
# print(bool([0, 0, 0])) # 注意:True

猜你喜欢

转载自www.cnblogs.com/gssss/p/9004928.html