gpt4 book ai didi

python - 列表理解中有多少逻辑?

转载 作者:行者123 更新时间:2023-11-28 18:19:17 25 4
gpt4 key购买 nike

我的代码中有一个列表理解,看起来像这样:

dataPointList = [
map(str,
[ elem for elem in dataFrame[column]
if not pd.isnull(elem) and '=' in elem
]
) for column in list(dataFrame)
]

我想知道,何时分解列表理解是否有一般的经验法则?列表推导式中的逻辑是否过多?

最佳答案

您可能不想混合使用 map 和列表理解,尤其是当根本不需要 map 时:

>>> list(map(str, [x for x in [1, 2, 3]]))
['1', '2', '3']
>>> [str(x) for x in [1, 2, 3]]
['1', '2', '3']

这意味着您可以直接在列表理解中简单地应用 str[elem]:

dataPointList = [
[ str(elem) for elem in dataFrame[column]
if not pd.isnull(elem) and '=' in elem
] for column in list(dataFrame)
]

然后,DataFrame 就已经是可迭代的了。无需将其转换为列表:

>>> [x for x in list(pd.DataFrame(d))]
['one', 'two']
>>> [x for x in pd.DataFrame(d)]
['one', 'two']

你的代码变成:

dataPointList = [
[ str(elem) for elem in dataFrame[column]
if not pd.isnull(elem) and '=' in elem
] for column in dataFrame
]

请注意,由于您需要嵌套列表,因此不能使用双列表推导式:

>>> [(a,b) for a in x for b in y]
[(1, 3), (1, 4), (2, 3), (2, 4)]
>>> [[(a,b) for b in y] for a in x]
[[(1, 3), (1, 4)], [(2, 3), (2, 4)]]

关于python - 列表理解中有多少逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46262904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com