Python-具有拆分选项输出差异的映射

我是python的新手,只是想了解为什么输出是这样的。

1)

strr=['asdfasdf','asdf','sdf','sdf']

stak=map(lambda l:l.split(','),strr)

print(stak)

当我执行第一组时,输出将具有以下格式,这是可以理解的 因为,拆分返回一个列表,而collect也返回一个列表,因此里面的列表 列表

[['asdfasdf'],['asdf'],['sdf'],['sdf']]

2)

str='asdfasdf,asdf,sdf,sdf'

sc.parallelize(str).map(lambda l:l.split(',')).collect()

print(str)

现在检查第二种情况,以下操作也应该与上述操作相同,并且应该 给出类似的输出。但是相反,它给出的输出如下。我不明白为什么 字符被分成单独的列表。谁能解释为什么差异 1和2的输出?

[['a'],['s'],['d'],['f'],['a'],['',''],['f']]
ssd88 回答:Python-具有拆分选项输出差异的映射

  1. split在Python中返回list,因为列表中没有元素具有comma (,),所以它为每个值返回一个仅包含一个值本身的元素的列表当您映射到列表中的每个元素时,strong>。输出为列表列表

  2. 由于在字符串上使用并行化,它将字符串拆分为字符的RDD,然后在每个字符上进行映射拆分,这再次返回如#1中所述的列表列表。只有当它遇到逗号作为字符时,您才能获得带有两个空字符串的列表,并且该列表将被拆分。 了解更多信息check this

本文链接:https://www.f2er.com/3123308.html

大家都在问