在保留顺序的同时更改列表中的某些数据类型
Changing some data types in a list while preserving the order
如果我有一个数字列表,例如:
[1.0, 3.0, 1.0, 1.43, 1.0, 8.0, 4.0, 8.98, 2.0, 2.0, 2.0, 5.0, 7.0, 72.0,
3.0, 3.0, 3.0, 7.0, 9.0, 9.0, 4.0, 4.0, 4.0, 4.0, 8.7, 43.0, 5.89, 5.0, 5.0,
5.0, 322.0, 7.0, 6.0, 6.0, 6.0, 102.0]
是否可以将以“.0”结尾的所有内容转换为整数,并将 8.98 之类的数字保留为浮点数,同时保持列表的顺序?
这个输出应该是
[1, 3, 1, 1.43, 1, 8, 4, 8.98, 2, 2, 2, 5, 7, 72, 3, 3, 3, 7, 9, 9, 4, 4, 4,
4, 8.7, 43, 5.89, 5, 5, 5, 322, 7, 6, 6, 6, 102]
你可以试试这个
[int(i) if int(i)==i else i for i in my_lst]
输出:
[1, 3, 1, 1.43, 1, 8, 4, 8.98, 2, 2, 2, 5, 7, 72, 3, 3, 3, 7, 9, 9, 4, 4, 4,
4, 8.7, 43, 5.89, 5, 5, 5, 322, 7, 6, 6, 6, 102]
您可以尝试类似的方法:
[int(i) if i.is_integer() else i for i in my_list]
如果我有一个数字列表,例如:
[1.0, 3.0, 1.0, 1.43, 1.0, 8.0, 4.0, 8.98, 2.0, 2.0, 2.0, 5.0, 7.0, 72.0,
3.0, 3.0, 3.0, 7.0, 9.0, 9.0, 4.0, 4.0, 4.0, 4.0, 8.7, 43.0, 5.89, 5.0, 5.0,
5.0, 322.0, 7.0, 6.0, 6.0, 6.0, 102.0]
是否可以将以“.0”结尾的所有内容转换为整数,并将 8.98 之类的数字保留为浮点数,同时保持列表的顺序?
这个输出应该是
[1, 3, 1, 1.43, 1, 8, 4, 8.98, 2, 2, 2, 5, 7, 72, 3, 3, 3, 7, 9, 9, 4, 4, 4,
4, 8.7, 43, 5.89, 5, 5, 5, 322, 7, 6, 6, 6, 102]
你可以试试这个
[int(i) if int(i)==i else i for i in my_lst]
输出:
[1, 3, 1, 1.43, 1, 8, 4, 8.98, 2, 2, 2, 5, 7, 72, 3, 3, 3, 7, 9, 9, 4, 4, 4,
4, 8.7, 43, 5.89, 5, 5, 5, 322, 7, 6, 6, 6, 102]
您可以尝试类似的方法:
[int(i) if i.is_integer() else i for i in my_list]