【发布时间】:2019-09-01 11:08:43
【问题描述】:
我有两个列表(a 和 b)
它们每行只有 2 个索引。
a(50,000 行)如下所示:
|name|age|
|----|---|
|Dany|021|
|Alex|035|
作为列表的列表,如下所示:
[['Dany', '021'],['Alex','035'], etc...]
b(2000 行)如下所示:
|name|age|
|----|---|
|Paul| |
|Leon| |
作为列表的列表,如下所示:
[['Paul', ''],['Leon',''], etc...]
问题:我想同时遍历a和b——对于a的每次迭代,如果a[0]在b[0]中,我想将对应的a[1]添加到b[1].
通俗地说,我想通过我的a 列表将年龄添加到我的b 列表中,检查姓名是否在a 列表中,如果是,则获取相应的年龄并添加它在对应名称的b 列表中。
我尝试了一个嵌套循环(遍历 b 并且对于每次迭代,遍历 a 以检查在 a[0] 的 a 的任何迭代是否存在于 b 在 b[0] 的迭代中)但是之后就一直迷路吧。
for row in b[1:]: # Excluding the headers
b_name = row[0]
b_age = row[1]
for row in a[1:]:
if b_name in row[0]:
b_age = row[1]
else:
b_age = ''
问题是我最终只获得了一个 b_age 的值,但应该有 2000 个唯一的 b_age 值?
【问题讨论】:
-
这些应该是字典,而不是列表。或者你应该使用
pandas。 -
将
b_age设置为一个值不会影响它来自的列表列。 -
你没有添加任何东西,你只是替换了变量。您的意思是要将它们添加为数字、连接字符串还是列出所有值?
-
@Barmar 在这种情况下我应该如何使用熊猫?
-
IMO,pandas 对于这么小的项目和这么简单的要求来说是大量矫枉过正。
标签: python list loops iteration nested-loops