在代码的下方部分 v 是一个字符列表。
import collections
import csv
import sys
with open("prom output.csv","r") as f:
cr = csv.reader(f,delimiter=",")
d=collections.defaultdict(lambda : list())
header=next(cr)
for r in cr:
d[r[0]].append(r[1])
with open("sorted output.csv","w") as f:
cr = csv.writer(f,sys.stdout, lineterminator='\n')
od = collections.OrderedDict(sorted(d.items()))
for k,v in od.items():
cr.writerow(v)
我的输出看起来像
我想将输入的所有字符映射到一个整数,这样我就可以得到一个带有数字的表而不是带有字符的表。我尝试使用内置函数 ord(),但它不起作用,因为它只接受单个字符作为输入而不是列表。你能帮忙吗?
答案 0 :(得分:3)
如果您有要转换为数字的字母列表,请尝试:
>>> [ord(l) for l in letters]
[97, 98, 99, 100, 101, 102, 103]
或
>>> list(map(ord, letters))
[97, 98, 99, 100, 101, 102, 103]
或者,如果您正在处理大写列标题并想要相应的索引
>>> letters = ['A', 'B', 'C', 'D', 'E']
>>> [ord(l.lower()) -96 for l in letters]
[1, 2, 3, 4, 5]
答案 1 :(得分:0)
您可以使用map()
将操作应用于列表中的每个项目:
a = ['a', 'b', 'c']
b = map(lambda c: ord(c), a)
print b
>>> [97, 98, 99]