Loading web-font TeX/Math/Italic

alex_bn_lee

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

【363】python 相关小技巧 | zip、zip(*)

1. 对列表进行乱序

通过 random.shuffle() 方法实现,直接对列表进行操作

1
2
3
4
5
6
7
>>> import random
>>> a = list(range(4))
>>> a
[0, 1, 2, 3]
>>> random.shuffle(a)
>>> a
[3, 0, 1, 2]

2. 获取指定范围的随机数

通过 random.uniform() 方法实现

1
2
3
4
>>> random.uniform(0,10)
2.3591479768289227
>>> random.uniform(9,10)
9.402797721231435

3. 将两个列表合并起来

通过 zip() 函数实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>>> import random
>>> a = list(range(4))
>>> a
[2, 1, 0, 3]
>>> b = a.copy()
>>> random.shuffle(b)
>>> b
[2, 3, 0, 1]
 
>>> list(zip(a,b))
[(2, 2), (1, 3), (0, 0), (3, 1)]
 
>>> ba = list(zip(a,b))
>>> ba
[(2, 2), (1, 3), (0, 0), (3, 1)]
 
>>> c
[2, 1, 0, 3]
>>> list(zip(ba, c))
[((2, 2), 2), ((1, 3), 1), ((0, 0), 0), ((3, 1), 3)]

4. 合并后的分离

通过 zip(*) 来实现

1
2
3
4
5
6
7
>>> ba
[(2, 2), (1, 3), (0, 0), (3, 1)]
>>> m, n = zip(*ba)
>>> m
(2, 1, 0, 3)
>>> n
(2, 3, 0, 1)

参考:Python zip() 函数 

zip 函数:将 x=[x1,x2,...,xn]y=[y1,y2,...,yn] 转为 [(x1,y1),(x2,y2),...,(xn,yn)]
可以理解为将两个 list 压缩成一个 list

zip(*) 函数:将 [(x1,y1),(x2,y2),...,(xn,yn)] 转为 x=[x1,x2,...,xn]y=[y1,y2,...,yn]
可以理解为将一个 list 解压成两个 list

posted on   McDelfino  阅读(176)  评论(1编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示