【发布时间】:2014-12-03 04:24:02
【问题描述】:
假设我有以下列表:
list1 = ['MI', '', 'NY', '', 'AR', '']
list2 = ['', 'MS', '', 'OH', '', '']
list1 中有缺失值或空字符串的地方,我想用 list2 中的对应值覆盖空字符串。有没有一种有效的方法可以做到这一点,而不必遍历 list1 中的每个项目?以下是我目前的解决方案:
list1 = ['MI', '', 'NY', '', 'AR', '']
list2 = ['', 'MS', '', 'OH', '', '']
counter = 0
for each in list1:
counter = counter + 1
if len(each) == 0:
list1[counter-1] = list2[counter-1]
print(list1)
>>> ['MI', 'MS', 'NY', 'OH', 'AR', '']
我尝试将我的列表转换为 pandas 数据框并使用了pandas.DataFrame.update(),但没有得到我想要的结果。 here 解决了类似的问题,但在 R 中。
【问题讨论】:
-
不,您将不得不迭代。您可以通过使用精美的列表组合等来隐藏迭代,但有些东西会在幕后迭代这些列表。