繁体   English   中英

从字符串和列表中删除python输出中的引号

[英]Removing Quotation marks in python output from string and list

我必须实现一个函数,它接受一个字符串类型的参数并解析这个参数并返回一个元组,元组的第一个值是单位数,元组的第二个值是测量单位。 我成功地拆分了数字和度量单位,但我需要有关报价位置的帮助。

input_value = "3 ft"
split_list = (input_value.split())
print(split_list)
['3', 'ft']

我如何获得看起来像[3, "ft"]

input_value = "3 ft"
split_list = (input_value.split())
try:
    split_list[0] = int(split_list[0])
except ValueError:
    split_list[0] = float(split_list[0])
print(split_list) [3, 'ft']

如果您不想在单位数周围加上引号,则需要将split_list的第一个元素(即示例中的三个元素)转换为int

至于在度量单位周围获取双引号,默认情况下 Python 使用单引号打印字符串,但您可以使用json。 转储作为一种解决方法,因为JSON字符串必须使用双引号:

import json

input_value = "3 ft"
split_list = input_value.split()
split_list[0] = int(split_list[0])
print(json.dumps(split_list))

输出:

[3, "ft"]

如果您需要支持小数,例如3.5 ft使用float()而不是int()

import json

input_value = "3.5 ft"
split_list = input_value.split()
split_list[0] = float(split_list[0])
print(json.dumps(split_list))

输出:

[3.5, "ft"]

在这里试试。

建议

您可以做的是使用function转换列表的值。 因此,当您想为其添加更多格式时,它可以被修改

代码

列表

alist = ['3', 'ft']

功能

def lista(alist):
    number, measure = alist
    number = int(number)
    alist = [number, measure]
    return alist

调用函数

print(alist)
print("print the list after conversion {}".format(lista(alist)))

输出

['3', 'ft']
print the list after conversion [3, 'ft']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM