我有两套:一套是字符串值,另一套是数值。
如何将一组字符串值转换为一组数值,以便它可以用于:
set.difference(csv1,csv2)
csv1 = ({92599, 95571, 95382, 95383})
csv2 = ({'92599', '95571', '95382', '95383'})
进入此
csv2 = ({92599, 95571, 95382, 95383})
答案 0 :(得分:3)
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])