如何将字符串列表转换为整数列表

时间:2016-09-13 10:29:58

标签: python excel

在代码的下方部分 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)  

我的输出看起来像

enter image description here

我想将输入的所有字符映射到一个整数,这样我就可以得到一个带有数字的表而不是带有字符的表。我尝试使用内置函数 ord(),但它不起作用,因为它只接受单个字符作为输入而不是列表。你能帮忙吗?

2 个答案:

答案 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]