首页 > 解决方案 > 如何将相同的功能应用于多个列表

问题描述

我有两个列表,想对两者应用相同的功能,我知道如何一次应用一个,但不能同时应用两个?然后我想添加每个元素来收集一个总数?

a = ['a','b','c','d','e']
b = ['b', np.nan,'c','e','a']
c = ['a','b','c','d','e']

我知道你可以在下面做得到输出,但我想用 serparation 来做

a = [1 if 'a' in a else 99 for x in a]
b = [1 if 'a' in b else 99 for x in b]
c = [1 if 'a' in c else 99 for x in c]

我首先想在下面输出:

a = [1, 99, 99, 99, 99]
b = [99, 99, 99, 99, 1]
c = [99, 99, 99, 99, 1]

然后将每个元素添加到一个最终列表中

sum = [199, 297, 297, 297, 101]

标签: pythonlist

解决方案


pandas 让这很容易(尽管我确信它和 numpy 一样简单)

import pandas

df = pandas.DataFrame({'a':a,'b':b,'c':c})
mask = df == 'a'
df[mask] = 1
df[~mask] = 99
df.sum(axis=1)

推荐阅读