Python 要列出的元组值-存在问题
到目前为止,我掌握的代码是:Python 要列出的元组值-存在问题,python,Python,到目前为止,我掌握的代码是: def parse_measurement(input_value): split_list = input_value.split() try: split_list[0] = int(split_list[0]) except ValueError: split_list[0] = float(split_list[0]) return split_l
def parse_measurement(input_value):
split_list = input_value.split()
try:
split_list[0] = int(split_list[0])
except ValueError:
split_list[0] = float(split_list[0])
return split_list
input_text = "3 ft, 5 ft, 8.3 ft"
output = [parse_measurement(s) for s in input_text.split(',')]
print(output)
现在使用上面的代码,如果我将输入值设为:
input_value = "3 ft, 5 ft, 8.3 ft"
output = [[3,'ft'], [5, 'ft'], [8.3, 'ft']]
input_value = ("3 ft", "5 ft", "8.3 ft")
如何修复函数,以便将输入值设置为:
input_value = ("3 ft", "5 ft", "8.3 ft")
并且仍然得到相同的输出
谢谢大家! 我并没有真正使用tuple,所以我将输入值替换为list,希望这对您没问题。 守则:
input_value = ["3 ft", "5 ft", "8.3 ft"]
output = []
for i in range(len(input_value)):
output.append(float(input_value[i].split()[0]))
print(output)
我认为它可以缩短很多,所以这里是缩短的版本:
input_value, output = ["3 ft", "5 ft", "8.3 ft"], []
for i in range(len(input_value)): output.append(float(input_value[i].split()[0]))
print(output)
另外,输出现在是浮动的,我没有找到解决方法。试试这个
def parse_measurement(input_value):
split_list = input_value.split()
try:
split_list[0] = int(split_list[0])
except:
split_list[0] = float(split_list[0])
return split_list
input_value = ("3 ft", "5 ft", "8.3 ft")
output = [parse_measurement(s) for s in input_text] # no split to divide string now
print(output)
def parse_entry(text):
try:
value, unit = text.split()
return (float(value), unit)
except:
return (None, text)
def parse_measurement(input_value):
return tuple([parse_entry(e) for e in input_value])
您不需要更改函数,只需从列表中删除
.split(',')
。Ieoutput=[parse_measurement for s in input_value]
@Loocid这就是魔力!