我很好奇,如果他们是一些蟒蛇魔法我可能不知道要完成一点轻浮
给出了这一行:
csvData.append(','.join([line.split(":").strip() for x in L]))
我正在尝试在:
上拆分一行,修剪它周围的空白,然后加入,
问题是,因为数组是从line.split(":")
返回的,所以
for x in L #<== L doesn't exist!
导致问题,因为我没有line.split(":")
所以我很好奇是否有一种性感的语法可以用来一次完成这个?
干杯!
答案 0 :(得分:23)
>>> line = 'a: b :c:d:e :f:gh '
>>> ','.join(x.strip() for x in line.split(':'))
'a,b,c,d,e,f,gh'
你也可以这样做:
>>> line.replace(':',',').replace(' ','')
'a,b,c,d,e,f,gh'
答案 1 :(得分:1)
有点像?:
>>> L = "1:2:3:4"
>>> result = ",".join([item.strip() for item in L.split(":")])
>>> result
'1,2,3,4'
掌握列表理解需要一段时间。当你打破它们时,它们基本上只是打包的循环。
因此,在学习时,尝试将其作为正常循环分解,然后将其转换为列表理解。
在您的示例中,您不会将line
变量分配到任何位置,因此即使在标准循环中也会出错。
>>> for x in L:
... items = line.split(":")
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: name 'line' is not defined
>>>
答案 2 :(得分:1)
给出字符串S:
','.join([x.strip() for x in s.split(':')])