阿里云天池Python训练营-打卡2


一、浅拷贝与深拷贝

import copy
l1=[2,1]
l2=l1 # 浅拷贝
l3=l1[:] # 深拷贝
print (l1,l2,l3)
l1[0]=5
print (l1,l2,l3)

l1=[[1,2],[3,4]] # 浅拷贝
l2=l1
l3=l1[:]
l4=l1[:][:]
l5=copy.deepcopy(l1) # 深拷贝
l1[0][0]=9
print (l1,l2,l3,l4,l5,sep=" @ ")
输出:[2, 1] [2, 1] [2, 1]
     [5, 1] [5, 1] [2, 1]
     [[9, 2], [3, 4]] @ [[9, 2], [3, 4]] @ [[9, 2], [3, 4]] @ [[9, 2], [3, 4]] @ [[1, 2], [3, 4]]

二、元组解压

# 解压元组时的通配符
t=1,2,3,4,5
a,*b,c=t
print(a,b,c)
s=[1,2,3,4,5]
a,*b,c,d=s
print(a,b,c,d)
输出:1 [2, 3, 4] 5
	 1 [2, 3] 4 5

三、字符串

# 字符串对齐
str4='1101'
print(str4.ljust(8, '0'))
print(str4.rjust(8, '0'))

# 字符串删减
str5='-123456-'
print(str5,str5.strip('-'),str5.strip('3'),str5.lstrip('-'),sep='\n')

# 字符串切分
str6='12345678'
(pre_sub,sub,fol_sub)=str6.partition('3456')
pre_sub,sub,fol_sub

# 字符串格式化
str8 = "{0} Love {1}".format('I', 'Lsgogroup')  # 位置参数
str8 = "{a} Love {b}".format(a='I', b='Lsgogroup')  # 关键字参数 
str8 = "{0} Love {b}".format('I', b='Lsgogroup')  # 位置参数要在关键字参数之前
str8 = '{0:.2f}{1}'.format(27.658, 'GB')  # 保留小数点后两位
print(str8)
'''
辅助指令:
m.n:m是显示的最小总宽度,n是小数点后的位数
-:左对齐
+:正数显示加号
#:八进制、十六进制添加前缀
0:在显示的数字前面填充0
'''
输出:11010000
	 00001101
	 -123456-
	 123456
     -123456-
     123456-
     27.66GB

四、字典

# 字典根据key值初始化
seq=('name','age','sex')
dic1=dict.fromkeys(seq)
print(dic1)
dic2=dict.fromkeys(seq,('tt','8'))
dic2

# dict.keys()返回一个迭代器,可以使用 list() 来转换为列表,列表为字典中的所有键
# dict.values()返回一个迭代器,可以使用 list() 来转换为列表,列表为字典中的所有值
# dict.items()以列表返回可遍历的 (键, 值) 元组数组
# dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回默认值
# dict.copy() 返回一个字典的浅复制
# dict.update(dict2)把字典参数 dict2 的 key:value对 更新到字典dict里
输出:{'name': None, 'age': None, 'sex': None}
	 {'name': ('tt', '8'), 'age': ('tt', '8'), 'sex': ('tt', '8')}

五、集合

# 集合
a=set(("4323213232","213","213"))
print(a)
# set.discard(value) 用于移除指定的集合元素。remove() 方法在移除一个不存在的元素时会发生错误,而 discard() 方法不会
# set1 & set2 返回两个集合的交集。
# set.intersection_update(set1, set2) 交集,在原始的集合上移除不重叠的元素
# set1 | set2 返回两个集合的并集
a=set('abcde')
b=set('bcdef')
print(a-b) # 返回集合差值
# set.difference_update(set) 集合的差集,直接在原来的集合中移除元素,没有返回值
# set1 ^ set2 返回集合的异或。(两个集合不同的元素)
# set.symmetric_difference_update(set)移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中
# set1 <= set2 判断集合是不是被其他集合包含
# set.isdisjoint(set) 用于判断两个集合是不是平行的(无交集)
a=frozenset(a)
a=a^b
print(a)
输出:{'213', '4323213232'}
	 {'a'}
	 frozenset({'a', 'f'})

六、其他

# sorted(iterable, key=None, reverse=False) 对所有可迭代的对象进行排序操作
t = ({"age": 20, "name": "a"}, {"age": 25, "name": "b"}, {"age": 10, "name": "c"})
x = sorted(t, key=lambda a: a["age"])
x

# reversed(seq) 函数返回一个反转的迭代器
# enumerate(sequence, [start=0]) 用于将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标

a = [1, 2, 3]
b = [4, 5, 6, 7]
z = zip(a,b)
a,b=map(list,zip(*z))
a
输出:[1, 2, 3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值