如何将列表中逗号分隔的列表转换为整数?

时间:2017-10-16 18:46:49

标签: python

例如,我有一个这样的列表:

AD= ['3,7', '6,7', '17,16', '16,23', '9,10']

我希望将每个字符串转换为整数,而不是摆脱它们成对的事实。所以我不想让它变成:

AD= [3, 7, 6, 7, 17, 16, 16, 23, 9, 10]

我已经尝试了以下但是它没有工作:

         for i in AD:
            val= i.split(",")
            for j in val:
               j= map(int, j)

3 个答案:

答案 0 :(得分:1)

简单如下:

>>> [ tuple(map(int, x.split(','))) for x in AD ]
=> [(3, 7), (6, 7), (17, 16), (16, 23), (9, 10)]

这样可以保留pair作为list of tuples的需要。

在这里,我们将根据分隔符list浏览splitting','字符串,然后将值转换为tuple后将它们转换为int 1}}。

答案 1 :(得分:0)

你可以试试这个:

import itertools
AD= ['3,7', '6,7', '17,16', '16,23', '9,10']
final = list(map(int, itertools.chain.from_iterable([b.split(",") for b in AD])))

输出:

[3, 7, 6, 7, 17, 16, 16, 23, 9, 10]

如果您想保留原始配对:

import re
AF=['0.27, 0.56', '0.24, 0.06', '0.44, 0.35']
final_data = [tuple(map(float, re.split(",\s*", i))) for i in AF]

输出:

[(0.27, 0.56), (0.24, 0.06), (0.44, 0.35)]

答案 2 :(得分:0)

一个值得信赖的函数,虽然它不会处理逗号后面的转换和空格后的空格。

def pairize_inplace(iterable, splitter=','):
    for i in range(len(iterable)):
        iterable[i] = str(iterable[i].split(splitter))