elb*_*laf 2 python tuples list-comprehension
目标:在单个易于理解的语句中创建一个元组,该元组由 Pandas 数据框的列标题和一个附加列组成。
例如说:
df.columns = ['a', 'b', 'c']
fname = 'sample.txt'
Run Code Online (Sandbox Code Playgroud)
我可以在三个语句中创建元组 ('a', 'b', 'c', 'sample.txt') 如下:
y = [x for x in df.columns]
y.append(fname)
mytuple = tuple(y)
Run Code Online (Sandbox Code Playgroud)
它可读,但冗长。我可以将其简化为两个语句:
y = [x for x in df.columns].append(fname)
mytuple = tuple(y)
Run Code Online (Sandbox Code Playgroud)
这还不错,但我仍然更喜欢在一行中完成。我的想法 A 是单行语句应该像这样工作:
mytuple = tuple([x for x in df.columns].append(fname))
Run Code Online (Sandbox Code Playgroud)
唉,这会产生错误:
TypeError: 'NoneType' 对象不可迭代
我也试过 B(猜测)
mytuple = tuple([[x for x in df.columns].append(fname)])
Run Code Online (Sandbox Code Playgroud)
但这给出了错误的结果
(没有任何,)
我想知道三件事:
list.append()改变列表,但正在返回None。这就是你的错误的原因。要将其写在一行中,请使用列表连接而不是list.append():
mytuple = tuple([x for x in df.columns] + [fname])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40 次 |
| 最近记录: |