Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:在一行中拆分、剥离和连接_Python_Join_Split_List Comprehension_Trim - Fatal编程技术网

Python:在一行中拆分、剥离和连接

Python:在一行中拆分、剥离和连接,python,join,split,list-comprehension,trim,Python,Join,Split,List Comprehension,Trim,我很好奇,如果他们是某种我可能不知道的巨蟒魔法来完成一点轻浮 鉴于该行: csvData.append(','.join([line.split(":").strip() for x in L])) 我试图在:上拆分一行,修剪其周围的空白,然后在,上加入 问题是,由于数组是从行.split(“:”返回的,所以 for x in L #<== L doesn't exist! 对于L#中的x,类似于: >>> L = "1:2:3:4" >>> res

我很好奇,如果他们是某种我可能不知道的巨蟒魔法来完成一点轻浮

鉴于该行:

csvData.append(','.join([line.split(":").strip() for x in L]))
我试图在
上拆分一行,修剪其周围的空白,然后在
上加入

问题是,由于数组是从
行.split(“:”
返回的,所以

for x in L #<== L doesn't exist!
对于L#中的x,类似于:

>>> L = "1:2:3:4"
>>> result = ",".join([item.strip() for item in L.split(":")])
>>> result
'1,2,3,4'
要掌握列表的理解需要一段时间。当您分解它们时,它们基本上只是打包的循环

所以,在学习的时候,试着把它分解成一个普通的循环,然后把它转换成一个列表理解

在您的示例中,您没有在任何地方分配
变量,因此即使在标准循环中,这也是一个错误

>>> for x in L:
...     items = line.split(":")
...
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
NameError: name 'line' is not defined
>>>
>>对于L中的x:
...     项目=行。拆分(“:”)
...
回溯(最近一次呼叫最后一次):
文件“”,第2行,在
名称错误:未定义名称“行”
>>>
您也可以这样做:

>>> line.replace(':',',').replace(' ','')
'a,b,c,d,e,f,gh'
给定一个字符串S:

','.join([x.strip() for x in s.split(':')])

不需要在中间构建列表是的,没错,但对于初学者来说,这可能会让人困惑。这里不需要列表理解,只需要
,'.join(x.strip()代表s.split(':'))
。没错,尽管列表理解可能会澄清部分解决方案。实际上,我更喜欢第一个答案,因为第二个对空格的定义不太可靠。第一个回答,太棒了@DSM在['''''\n','\t']中为sp设置
如何:line=line.replace(sp'')
','.join([x.strip() for x in s.split(':')])