gpt4 book ai didi

python - 无法通过附加到列表理解创建的列表来在单个语句中创建元组

转载 作者:行者123 更新时间:2023-12-05 08:15:54 24 4
gpt4 key购买 nike

目标:创建一个元组,其中包含 pandas 数据框的列标题和一个简单易懂的语句中的附加列。

例如说:

df.columns = ['a', 'b', 'c']
fname = 'sample.txt'

我可以在三个语句中创建元组 ('a', 'b', 'c', 'sample.txt'),如下所示:

y = [x for x in df.columns]
y.append(fname)
mytuple = tuple(y)

可读性强,但冗长。我可以将其简化为两个语句:

y = [x for x in df.columns].append(fname)
mytuple = tuple(y)

这还不错,但我还是更喜欢一行完成。我认为 A 是单行语句应该像这样工作:

mytuple = tuple([x for x in df.columns].append(fname))

唉,这会产生错误:

TypeError: 'NoneType' object is not iterable

我也试过B(乱猜)

mytuple = tuple([[x for x in df.columns].append(fname)])

但这给出了错误的结果

(None,)

我想知道三件事:

  1. 为什么选项 A 不符合我的预期。
  2. 有没有办法在一条语句中(不迟钝地)做到这一点。
  3. 如果是,它是如何完成的?

最佳答案

您不需要先创建列表;只需使用参数解包运算符:

mytuple = (*df.columns, fname)

关于python - 无法通过附加到列表理解创建的列表来在单个语句中创建元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66281586/

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