我有这段代码:
def create_dict(my_file):
my_lines = my_file.readlines()
my_dict = {}
for line in my_lines:
items = line.split()
key, values = items[0], items[2:3] + items[1:2] + items[5:6] +items[3:4] + items[4:5]
my_dict[key] = values
return my_dict
我需要它返回
{
'asmith': ['Smith', 'Alice', 'alice.smith@utsc.utoronto.ca', 31, 'F'],
'rford': ['Ford', 'Rob', 'robford@crackshack.com', 44, 'M']
}
但它的回归:
{
'asmith': ['Smith', 'Alice', 'alice.smith@utsc.utoronto.ca', '31', 'F'],
'rford': ['Ford', 'Rob', 'robford@crackshack.com', '44', 'M'].
}
我需要将年龄值更改为整数,并且我尝试使用int(items[3:4])
,但它表示对象必须是要转换为整数的字符串。任何人似乎都可以找出它为什么这样做?
答案 0 :(得分:1)
试试这个
int("".join(items[3:4]))
答案 1 :(得分:0)
试试int(''.join(item))
。如果有效,请告诉我。
答案 2 :(得分:0)
应为int(my_dict['asmith'][3])
items[3:4]
返回一个无法转换为整数的列表。 items[3]
似乎是年龄的位置。
答案 3 :(得分:0)
说你的BigInt& BigInt::operator+=(BigInt const& other)
有两行如下:
my_file
你可以使用它:
asmith Smith Alice alice.smith@utsc.utoronto.ca 31 F
rford Ford Rob robford@crackshack.com 44 M
试验:
def create_dict(my_file):
my_dict = {}
with open(my_file, 'r') as f: # close file without do it by yourself
for line in f: # it works even though the file has large size
items = line.split()
items[4] = int(items[4]) # convert age type from str to int
my_dict[items[0]] = items[1:]
return my_dict