2011-12-09 36 views
0

我想用小写打印我的输出,但我没有得到正确的结果。这是我的代码。请帮忙!如何在此代码中添加较低的功能

import csv 
mags = csv.reader(open("mags.csv","rU")) 

for row in mags: 


    print [row[index] for index in (1, 0)] 

    print [item.lower() for item in row] 
+2

你得到了什么结果,这些结果与你想要的有什么不同? – kindall

+0

问题是我为CSV中的每一行获得2个输出。第一个打印语句以所需的顺序返回数据,第二个打印语句以小写形式返回相同的数据。我想要的是合并这两个输出,但我不知道如何编码它。 – mantissa45

+0

你想让他们都在同一行吗? –

回答

1

您可以嵌套两个内涵是这样的:

print [item.lower() for item in [row[index] for index in (1, 0)]] 

这样,你将使用从第一个理解的数据(行的第二和第一项按此顺序)作为第二个输入(小写的所有内容)。

您也可以切片行而是采用了修真的第一个:

print [item.lower() for item in row[::-1][-2:]] # Slicing in 2 steps: [::-1] reverses the list and [-2:] returns the last two items of the reversed list 

或(更短,但逆转指标,你会觉得切片不工作)

print [item.lower() for item in row[1::-1] # Same thing, but it helps to break these things up into steps 
+0

谢谢!嵌套给了我正是我想要的。 – mantissa45

1

您确定该行是字符串列表吗? 我看到正确的输出:

>>> row = [ "alpA", "bETA","gammA" ] 
>>> print [item.lower() for item in row] 
['alpa', 'beta', 'gamma'] 
>>> 
2

列表理解可以被嵌套,像这样

print [item.lower() for item in [row[index] for index in (1, 0)]] 

不要放在手边,以测试这一个解释,tho。

+0

谢谢......正是我所需要的。 – mantissa45