我试图摆脱每个元组的第二个元素中的''。
我的代码是
def read_records_from_file(filename):
final_list = []
infile=open(filename)
lines=infile.readlines()
i = 0
while i < len(lines):
element = lines[i]
i += 1
if element.strip() == '<begin step data>':
break
while i < len(lines):
element = lines[i]
clean_element = element.rstrip("\n")
list = clean_element.split(",")
tuple1 = tuple(list)
i += 1
if element.strip() == '<end step data>':
break
final_list.append(tuple1)
return final_list
我的代码给了我
[('2001-01-01', '12776'), ('2001-01-02', '15128')]
但我需要
[('2001-01-01', 12776), ('2001-01-02', 15128)]
我不确定如何只将每个元组的第二个元素更改为整数。
注意:我不允许使用for循环
非常感谢任何帮助谢谢!
答案 0 :(得分:2)
您必须将第二个tuple
条目转换为int
数据类型,而不是使用string
表示形式(这会为您提供引号):
list = clean_element.split(",")
tuple1 = (list[0], int(list[1]))
编辑:请将这些行移到第二个while循环的开头:
element = lines[i]
if element.strip() == '<end step data>':
break
解决你的第二个问题。
最后,您会得到以下代码:
def read_records_from_file(filename):
final_list = []
infile=open(filename)
lines=infile.readlines()
for i in range(len(lines)):
element = lines[i]
clean_element = element.rstrip("\n").strip()
if clean_element == '<end step data>':
break
list = clean_element.split(",")
tuple1 = tuple(list)
final_list.append(tuple1)
return final_list