python - 展平未知长度的元组

标签 python tuples flatten pyspark

我有一个由 Spark 在连接后生成的元组。它有一个键、一个元组中的两列,然后是第二个表中的其余列。我不一定知道第二个表中有多少列。

例如:

(2324234534, (('23213','2013/03/02'), 12.32, 32.4, 45))

如果在 PySpark 中的 zip、日期元组后面有一列,我就能够分离元组:

x.map(lambda p: (p[0], (p[1][0][0], p[1][0][1], p[1][1])))

在Python中:

map(lambda p: (p[0], (p[1][0][0], p[1][0][1], p[1][1])), x)

这会产生我正在寻找的输出:

(2324234534, ('23213','2013/03/02', 12.32))

如果我想要在 zip、date 之后多于一列,那么我有以下代码:

x.map(lambda p: (p[0], (p[1][0][0], p[1][0][1], p[1][1:])))

但是,它会产生以下输出:

(2324234534, ('23213','2013/03/02', (12.32, 32.4, 45)))

无论哪种方式,我当前的方法都很糟糕,并且不会产生我正在寻找的结果。也许我有兴趣学习如何展平元组(我在这个主题上找到的其他线程将元组转换为列表,这不是 100% 我正在寻找的)

最佳答案

如果我正确理解您的目标,我相信这可以满足您的要求:

In [11]: a = (2324234534, (('23213','2013/03/02'), 12.32, 32.4, 45))

In [12]: a[:1] + (a[1][0] + a[1][1:],)
Out[12]: (2324234534, ('23213', '2013/03/02', 12.32, 32.4, 45))

关于python - 展平未知长度的元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28595048/

相关文章:

python - Pandas - 累积中位数

java - 如何在jepp中使用python模块?

python - 将参数传递给自定义异常

python - 在python中运行excel宏并保存结果

Python 元组而不是列表

sql - 展平 BigQuery 表中多个相同大小的数组列

swift - 如何在元组上定义后缀运算符?

swift - 通过下标访问元组

file - 如何复制某些文件(无文件夹层次结构),但不覆盖现有文件?

python - 如何将 pandas 数据框转换为没有列标题的字典?