欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据类型的简单应用

程序员文章站 2022-05-04 16:40:25
...

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值
相关标签: 学习练习 python