数据类型的简单应用

1 .将元组(1,2,3) 和集合{“four”,5,6}合成一个列表

tuple=(1,2,3)
set={"four",5,6}
list=list(tuple)+list(set)
print(list)

结果:

[1, 2, 3, 'four', 5, 6]

2 .将列表[3,7,0,5,1,8]中大于5元素置为0,小于5的元素置为1

list=[3,7,0,5,1,8]
for i in range(len(list)):
    if list[i]>5:
        list[i]=0
    elif list[i]==5:
        list[i]=2
    else:
        list[i]=1
print(list)

结果:

[1, 0, 1, 2, 1, 0]

3. 将列表[“mo”,“deng”,“ge”]和[1,2,3] 转换成[(“mo”,1),(“deng”,2),(“ge”,3)]
方法一:

list1=["mo","deng","ge"]
list2=[1,2,3]
list3=[]
for i in range(len(list1)):
    list3.append((list1[i],list2[i]))
print(list3)

方法二:

list1=["mo","deng","ge"]
list2=[1,2,3]
list3=list(zip(list1,list2))
print(list3)

结果:

[('mo', 1), ('deng', 2), ('ge', 3)]

4.若a = dict{},令 b = a,执行b.update({“x”:1}),a亦改变,为何,如何避免

a=dict()
b=a
b.update({"x":1})
print(a)
print(b)

结果:

{'x': 1}
{'x': 1}

这是深、浅拷贝问题,原始代码为浅拷贝。
共同点:
  深、浅拷贝都为复制基本类型的属性;引用类型的属性复制。
不同点:
  浅拷贝复制栈中的变量和变量指向堆内存中的对象指针,不复制堆内存中的对象。深拷贝复制栈中的变量和变量指向堆内存中的对象的指针和堆内存中的对象。
解决办法:
  引用深拷贝

import copy
a=dict()
b=copy.deepcopy(a)
b.update({"x":1})
print(a)
print(b)

结果:

{}
{'x': 1}

5.将二维结构[[‘a’,1],[‘b’,2]]和((‘x’,3),(‘y’,4))转换成字典

list1=[['a',1],['b',2]]
tuple1=(('x',3),('y',4))
# 将列表和元组分别转换为字典
dict1=dict(list1)
dict2=dict(tuple1)
print(dict1)
print(dict2)
# 合并字典
dict3={}
dict3.update(dict1)
dict3.update(dict2)
print(dict3)

结果:

{'a': 1, 'b': 2}
{'x': 3, 'y': 4}
{'a': 1, 'b': 2, 'x': 3, 'y': 4}

6.常见的转换函数:

函数描述
int(x)将x转换成一个整数
float(x)将x转换成一个浮点数
str(x)将对象转换成一个字符串
eval(str)用来计算字符串中的有效Python表达式,并返回一个对象
tuple(x)将x转换成一个元组
list(x)将x转换成一个列表
set(x)将x转换成可变集合
dict(d)创建一个字典,d必须是(key,value)的字典
complex(x,[y])将x和y转换到一个复数
bool转换为bool值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值