微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

目标:在单个易于理解的语句中创建一个元组,该元组由 Pandas 数据框的列标题一个附加列组成。

例如说:

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

我可以在三个语句中创建元组 ('a','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' 对象不可迭代

我也试过 B(猜测)

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

但这给出了错误的结果

(无,)

我想知道三件事:

  1. 为什么选项 A 不像我认为的那样工作。
  2. 有没有办法在单个语句中(非迟钝地)做到这一点。
  3. 如果是这样,它是如何完成的?

解决方法

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

mytuple = (*df.columns,fname)
,

public static void main(String[] args) throws ParseException{ String s = "{\"stats\": {\"minecraft:mined\": {\"minecraft:lily_of_the_valley\": 1}}}"; JSONParser parser = new JSONParser(); Object obj = parser.parse(s); JSONObject base = (JSONObject) obj; JSONObject stats = (JSONObject) base.get("stats"); JSONObject minecraft_mined = (JSONObject) stats.get("minecraft:mined"); long minecraft_lily_of_the_valley = (long) minecraft_mined.get("minecraft:lily_of_the_valley"); System.out.println(base); System.out.println(stats); System.out.println(minecraft_mined); System.out.println(minecraft_lily_of_the_valley); } 改变列表,但返回 list.append()。这就是你的错误的原因。要将其写在一行中,请使用列表连接而不是 None

list.append()
,
mytuple = tuple(list(df.columns) + [fname])

虽然,@kaya3 solution 可能是最好的

,

因为 .append() 不返回任何东西(它返回 None)。

它是这样完成的:

print(tuple([x for x in df.colums] + [fname]))

或者如果 df.colums 已经是一个列表:

print(tuple(df.colums + [fname]))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?