将字符串值集转换为数值

时间:2014-04-16 14:20:23

标签: python set converter

我有两套:一套是字符串值,另一套是数值。

如何将一组字符串值转换为一组数值,以便它可以用于:

set.difference(csv1,csv2)

csv1 = ({92599, 95571, 95382, 95383})

csv2 = ({'92599', '95571', '95382', '95383'})

进入此

csv2 = ({92599, 95571, 95382, 95383})

2 个答案:

答案 0 :(得分:3)

使用set comprehension

csv2 = {int(n) for n in csv2}

或者,对于Python 2.7之前的Python版本,使用生成器表达式:

csv2 = set(int(n) for n in csv2)

演示:

>>> csv2 = {'92599', '95571', '95382', '95383'}
>>> {int(n) for n in csv2}
set([95571, 95383, 95382, 92599])
>>> set(int(n) for n in csv2)
set([95571, 92599, 95382, 95383])

要创建差异,只需直接在set.difference() 上调用csv1方法

>>> csv1 = {92599, 95571, 95382, 95383}
>>> csv2 = {int(n) for n in csv2}
>>> csv1.difference(csv2)
set([])

或使用-减法运算符进行相同的操作:

>>> csv1 - csv2
set([])

答案 1 :(得分:1)

csv2 = set(int(n) for n in csv2)

是你想要的。

输出:

set([92599, 95571, 95382, 95383])