python高级语法

这篇博客介绍了Python的一些高级语法,包括使用for循环和列表推导式将字符串转换为Unicode码位列表,打印笛卡尔积的两种方法,使用*args接收不确定数量的参数,sort与sorted的区别,如何降序排列序列,快速在列表头部插入元素,创建字典的不同方式,列表去重的方法,定义私有属性以及如何随机打乱列表顺序。还展示了进度条显示的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#用for循环实现把字符串变成Unicode码未的列表:
a='!@#$%^&*('
codes=[]
for i in a:
    codes.append(ord(i))
print(codes)

#怎样用列表推导式把字符串变成Unicode码位的列表
a="!@#$"
codes=[ord(s) for s in a]
print(codes)
#很明显,⽤列表推导式实现⽐ for 循环加 append 更⾼效简洁,可读性更好。

#打印出两个列表的笛卡尔积
#解法1:使⽤⽣成器表达式产⽣笛卡尔积,可以帮忙省掉运⾏ for 循环的开销。
colors=['black','white']
sizes=['S','M','l']
for tshirts in ('%s %s'%(c,s)for c in colors for s in sizes):
    print(tshirts)
#解法2:使⽤ itertools ⾥的 product ⽣成器函数。
import itertools
print(list(itertools.product(['black','white'],['S','M','L'])))

#用神魔方法接收不确定值或者参数
#⽤ *args 的⽅式,*args 位置可以在任意位置。
a,b,*c=range(8)
print(a,b,c)
a,*b,c,d=range(5)
print(a,b,c,d)
*a,b,c,d=range(5)
print(a,b,c,d)

#sort与sorted的区别
l=[1,9,5,8]
l.sort()
print(l)
print(sorted(l))
#sort() 会就地在原序列上排序,sorted() 新建了⼀个新的序列。

#怎么通过 reverse 参数对序列进⾏降序排列
l=[1,9,5,8]
j=sorted(l,reverse=True)
print(j)

#快速插⼊元素到列表头部
#1.切片
l=[1,2,3,4,5]
l[0:0]='Python'
print(l)
#将python分开了
#2.用insert方法
l=[1,2,3,4,5]
l.insert(0,'first')
print(l)

#创建字典
a = dict(one=1, two=2, three=3)
b = {'one': 1, 'two': 2, 'three': 3}
c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
d = dict([('two', 2), ('one', 1), ('three', 3)])
e = dict({'one': 1, 'two': 2, 'three': 3})
print(a,b,c,d,e)

#列表去重
l=['A','A','B','B']
print(list(set(l)))

#Python中怎么定义私有属性。
#在属性前加两个前导下划线,尾部没有或最多有⼀个下划线

#怎么随机打乱⼀个列表⾥元素的顺序
from random import shuffle
l=list(range(30))
shuffle(l)
print(l)

#进度条显示
import time
from tqdm import tqdm
for i in tqdm(range(1000)):
    time.sleep(.01)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值