在 python 中将列表值从 float 转换为 int
Convert list values from float to int in python
我有以下列表:
lst = [(22027.0, 22943.0),
(22026.0, 22939.0),
(22025.0, 22936.0),
(22025.0, 22932.0),
(22027.0, 22929.0),
(22030.0, 22926.0),
(22031.0, 22922.0),
(22033.0, 22919.0),
(22033.0, 22907.0),
(22030.0, 22908.0),
(22029.0, 22911.0),
(22027.0, 22914.0),
(22025.0, 22918.0),
(22021.0, 22930.0),
(22018.0, 22931.0),
(22015.0, 22928.0),
(22012.0, 22924.0),
(22011.0, 22921.0),
(22011.33, 22920.0)]
我想将此列表值转换为 int。我尝试使用 round 但它给了我以下错误。到目前为止我尝试了什么?
[round(i) for i in lst]
我收到以下错误TypeError: type tuple doesn't define __round__ method
期望的输出:
[(22027, 22943),
(22026, 22939),
(22025, 22936),
(22025, 22932),
(22027, 22929),
(22030, 22926),
(22031, 22922),
(22033, 22919),
(22033, 22907),
(22030, 22908),
(22029, 22911),
(22027, 22914),
(22025, 22918),
(22021, 22930),
(22018, 22931),
(22015, 22928),
(22012, 22924),
(22011, 22921),
(22011, 22920)]
可以使用list-comprehension,list里面的每个元素都是tuple,需要单独考虑,也可以用int()
代替round()
来转换浮点数数字到整数:
[(int(x), int(y)) for x,y in lst]
[(22027, 22943), (22026, 22939), (22025, 22936), (22025, 22932), (22027, 22929), (22030, 22926), (22031, 22922), (22033, 22919), (22033, 22907), (22030, 22908), (22029, 22911), (22027, 22914), (22025, 22918), (22021, 22930), (22018, 22931), (22015, 22928), (22012, 22924), (22011, 22921), (22011, 22920)]
x = [(87.8,68.9),(122.0,68.4),(178.9,63.4),(245.6,68.1)]
y =[]
for i in x:
b = tuple(map(int, i))
y.append(b)
print(y)
我有以下列表:
lst = [(22027.0, 22943.0),
(22026.0, 22939.0),
(22025.0, 22936.0),
(22025.0, 22932.0),
(22027.0, 22929.0),
(22030.0, 22926.0),
(22031.0, 22922.0),
(22033.0, 22919.0),
(22033.0, 22907.0),
(22030.0, 22908.0),
(22029.0, 22911.0),
(22027.0, 22914.0),
(22025.0, 22918.0),
(22021.0, 22930.0),
(22018.0, 22931.0),
(22015.0, 22928.0),
(22012.0, 22924.0),
(22011.0, 22921.0),
(22011.33, 22920.0)]
我想将此列表值转换为 int。我尝试使用 round 但它给了我以下错误。到目前为止我尝试了什么?
[round(i) for i in lst]
我收到以下错误TypeError: type tuple doesn't define __round__ method
期望的输出:
[(22027, 22943),
(22026, 22939),
(22025, 22936),
(22025, 22932),
(22027, 22929),
(22030, 22926),
(22031, 22922),
(22033, 22919),
(22033, 22907),
(22030, 22908),
(22029, 22911),
(22027, 22914),
(22025, 22918),
(22021, 22930),
(22018, 22931),
(22015, 22928),
(22012, 22924),
(22011, 22921),
(22011, 22920)]
可以使用list-comprehension,list里面的每个元素都是tuple,需要单独考虑,也可以用int()
代替round()
来转换浮点数数字到整数:
[(int(x), int(y)) for x,y in lst]
[(22027, 22943), (22026, 22939), (22025, 22936), (22025, 22932), (22027, 22929), (22030, 22926), (22031, 22922), (22033, 22919), (22033, 22907), (22030, 22908), (22029, 22911), (22027, 22914), (22025, 22918), (22021, 22930), (22018, 22931), (22015, 22928), (22012, 22924), (22011, 22921), (22011, 22920)]
x = [(87.8,68.9),(122.0,68.4),(178.9,63.4),(245.6,68.1)]
y =[]
for i in x:
b = tuple(map(int, i))
y.append(b)
print(y)