python - 如何将此代码转换为 for 循环格式?
问题描述
我想更改此代码以使用“for”循环:
df = spark.createDataFrame([(0,prosecced_text[0]), (1,prosecced_text[1]),.. ,(100,prosecced_text[100]) ], ["id", "items"])
100 是prosecced_text
列表的长度。
解决方案
一般来说,我会建议使用列表推导来创建类似于您需要的列表的东西,但是您需要的特定元组列表正是enumerate
产生的(但我们必须enumerate
通过显式构造 a来消耗输出list
以获得实际清单):
df = spark.createDataFrame(list(enumerate(prosecced_text)), ["id", "items"])
什么enumerate
是返回一个迭代器,它产生元组,默认情况下从(index,value)
哪里index
开始,并且是传递给的迭代的每个对应元素。0
value
enumerate
根据@pault现已删除的评论,特定方法接受任何类型的可迭代作为其第一个参数,因此在上述特定情况下spark.createDataFrame
您甚至不需要封闭调用。list
如果您直接通过,它将起作用enumerate(prosecced_text)
。
推荐阅读
- c++ - 在 C++ 中将哈希表写入文件并从文件恢复
- git - 如何在 Azure DevOps 和 GitHub 之间正确设置双向同步
- python - 多类分类的去噪自编码器测试模式
- c++ - 是否有解决 C++ 中智能指针对指针运算的限制的解决方法?
- bash - MacOS bash:为什么即使在 eval 条件下使用 ERR 信号也会触发?
- java - Java 13 - 不能使用 `var` 关键字
- angular - Angular 自定义库 - 导出函数?
- xml - 无法解释 XML 中的所有特殊字符
- signals - 2 SIGINT 处理程序在一秒内收到第二个 SIGINT 后退出程序
- javascript - 使用 D3 缩放到外部加载的 svg 上的路径边界框