上一个问题是集合、列表不分了,感觉自学一天还是有点嫩。不用声明变量类型就能用这个很久没玩过了,上次玩还是 dos basic 时代。甚至连 basic 声明个数组都有个专门的语句,py 这种什么都不用就能声明还是有点不习惯。
这自学第二天,又出现了新问题。
合并两个列表成字典。
keys = [ 0,0,0,0 ]
values = [ 0,0,0,0 ]
怎么用比较简单的方法让这两个列表合成一个字典呢,合并规则就是下标对应。keys 里的第一个 key ,就是对应 values 里第一个 value ,keys 里第二个 key ,对应 values 里第二个 value 。
python 有没有比较独道的方法?
1
Weixiao0725 2023-07-31 22:19:15 +08:00
用 zip 就可以实现
|
2
t3zb2xzvjm4yvmn 2023-07-31 22:24:22 +08:00
dict([(i, j) for i in keys for j in values])
等同于 dict(zip(keys, values)) |
3
xqher042 2023-07-31 22:34:58 +08:00
在 Python 中,可以使用 zip() 函数和字典推导式将两个列表合并为一个字典。zip() 函数可以将多个可迭代对象的对应元素打包成元组,然后我们可以通过字典推导式将这些元组转化为键值对。
下面是使用 zip() 函数和字典推导式合并 keys 和 values 列表的示例代码: python keys = [0, 1, 2, 3] values = [10, 20, 30, 40] result = {k: v for k, v in zip(keys, values)} print(result) 输出结果为: {0: 10, 1: 20, 2: 30, 3: 40} 在上述代码中,zip(keys, values) 将 keys 和 values 中对应位置的元素打包成元组,并返回一个可迭代对象。然后,字典推导式 {k: v for k, v in zip(keys, values)} 遍历这个可迭代对象,生成一个包含合并结果的字典。 |
4
villa2935 OP @t3zb2xzvjm4yvmn 深刻!深刻!
|
6
ershierdu 2023-07-31 22:59:01 +08:00
如果想花时间深入学习,建议系统地看教程。否则自己摸索很容易提出一些 XY 问题,实际上是在走弯路
|
7
Yourshell 2023-07-31 23:30:10 +08:00
还没学会用 chatgpt 呢😕
|
10
poporange 2023-08-01 10:24:55 +08:00
我还是建议你在 B 站看黑马程序员的零基础教程吧,把学习姿态放低,反而学的快。
|
12
bugmaker1024 2023-08-01 11:33:49 +08:00
@poporange 确实,与其看文档,不如看视频系统的学习
|
13
RichardX2023 2023-08-01 14:20:57 +08:00
|
14
wliansheng 2023-08-01 14:47:34 +08:00
基础语法可以去 B 站看视频 学的更快
|
17
villa2935 OP @RichardX2023 这个好,我今天就准备看这个。
|
20
xi4oyu 2023-08-25 09:17:47 +08:00 via Android
@t3zb2xzvjm4yvmn 不对吧,这两句不等价啊,第一句会导致字典里所有的 value 都是 values 最后一个元素
|