Python 新手之二

2023-07-31 22:14:29 +08:00
 villa2935

上一个问题是集合、列表不分了,感觉自学一天还是有点嫩。不用声明变量类型就能用这个很久没玩过了,上次玩还是 dos basic 时代。甚至连 basic 声明个数组都有个专门的语句,py 这种什么都不用就能声明还是有点不习惯。

这自学第二天,又出现了新问题。

合并两个列表成字典。

keys = [ 0,0,0,0 ]
values = [ 0,0,0,0 ]

怎么用比较简单的方法让这两个列表合成一个字典呢,合并规则就是下标对应。keys 里的第一个 key ,就是对应 values 里第一个 value ,keys 里第二个 key ,对应 values 里第二个 value 。

python 有没有比较独道的方法?

1725 次点击
所在节点    Python
20 条回复
Weixiao0725
2023-07-31 22:19:15 +08:00
用 zip 就可以实现
t3zb2xzvjm4yvmn
2023-07-31 22:24:22 +08:00
dict([(i, j) for i in keys for j in values])
等同于
dict(zip(keys, values))
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)} 遍历这个可迭代对象,生成一个包含合并结果的字典。
villa2935
2023-07-31 22:37:25 +08:00
@t3zb2xzvjm4yvmn 深刻!深刻!
villa2935
2023-07-31 22:37:36 +08:00
@xqher042 厉害了!
ershierdu
2023-07-31 22:59:01 +08:00
如果想花时间深入学习,建议系统地看教程。否则自己摸索很容易提出一些 XY 问题,实际上是在走弯路
Yourshell
2023-07-31 23:30:10 +08:00
还没学会用 chatgpt 呢😕
villa2935
2023-08-01 03:14:35 +08:00
@ershierdu 我看的是网上的教程,w3school 的。可以么?我以前有编程基础。
villa2935
2023-08-01 03:17:03 +08:00
@Yourshell 还没呢,听说过,没见过。
poporange
2023-08-01 10:24:55 +08:00
我还是建议你在 B 站看黑马程序员的零基础教程吧,把学习姿态放低,反而学的快。
ruanimal
2023-08-01 11:23:26 +08:00
@villa2935 那就直接看官方文档啊
bugmaker1024
2023-08-01 11:33:49 +08:00
@poporange 确实,与其看文档,不如看视频系统的学习
RichardX2023
2023-08-01 14:20:57 +08:00
wliansheng
2023-08-01 14:47:34 +08:00
基础语法可以去 B 站看视频 学的更快
villa2935
2023-08-01 15:36:00 +08:00
@poporange 我都上这来了,就挺低的了。
villa2935
2023-08-01 15:36:51 +08:00
@poporange 是 bilibili 吗?可以的,哈哈。
villa2935
2023-08-01 15:38:33 +08:00
@RichardX2023 这个好,我今天就准备看这个。
villa2935
2023-08-01 15:40:05 +08:00
@ershierdu 有推荐的你认为比较系统的教程吗?
Kinnice
2023-08-01 15:51:14 +08:00
@villa2935 #15 您这是《不耻下问》
xi4oyu
2023-08-25 09:17:47 +08:00
@t3zb2xzvjm4yvmn 不对吧,这两句不等价啊,第一句会导致字典里所有的 value 都是 values 最后一个元素

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/961330

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX