Python 如何从字典中的项连接到字符串
我想连接到一个字符串。我从字符串s开始,我想使用for循环遍历我的字典。我知道我所做的一切毫无意义,因为我在循环的条件下提到“我”,但在身体中从来没有提到过 我有这个Python 如何从字典中的项连接到字符串,python,python-3.x,Python,Python 3.x,我想连接到一个字符串。我从字符串s开始,我想使用for循环遍历我的字典。我知道我所做的一切毫无意义,因为我在循环的条件下提到“我”,但在身体中从来没有提到过 我有这个 mydict1 = { 'item_1': [7,19], 'item_2': [0,3], 'item_3': [54,191], 'item_4': [41,43], } s = "Here are the items:" '\n' for i in mydict1: s += ke
mydict1 = {
'item_1': [7,19],
'item_2': [0,3],
'item_3': [54,191],
'item_4': [41,43],
}
s = "Here are the items:" '\n'
for i in mydict1:
s += key + ':' str(mydict1[1] - mydict1[0]) + ' bases long, spanning from bases ' + str(mydict1[0]) + ' to ' + str(mydict1[1])
print(s)
我想要这个输出:
Here are the items:
item_1: 12 bases long, spanning from bases 7 to 19
item_2: 3 bases long, spanning from bases 0 to 3
item_3: 137 bases long, spanning from bases 54 to 191
item_4: 2 bases long, spanning from bases 43 to 41
最好使用f字符串:
for key, (start, end) in mydict1.items():
print(f'{key}: {end-start} bases long, spanning from bases {start} to {end}')
当然,通过一些更改,您也可以使用str.format,但它的可读性会降低
要扩展我的答案并解释代码的错误,请执行以下操作:
当你像这样迭代mydict1中的i时:你迭代键。所以i的值将是字典的键
键不是定义的
mydict[0]将导致KeyError,因为没有键0或1
最好使用f字符串:
for key, (start, end) in mydict1.items():
print(f'{key}: {end-start} bases long, spanning from bases {start} to {end}')
当然,通过一些更改,您也可以使用str.format,但它的可读性会降低
要扩展我的答案并解释代码的错误,请执行以下操作:
当你像这样迭代mydict1中的i时:你迭代键。所以i的值将是字典的键
键不是定义的
mydict[0]将导致KeyError,因为没有键0或1
我认为这种使用字符串格式的方法实现了您最初的期望:
mydict1 = {
'item_1': [7,19],
'item_2': [0,3],
'item_3': [54,191],
'item_4': [41,43],
}
s = "Here are the items:" '\n'
for key, (start, end) in mydict1.items():
s += '{}: {} bases long, spanning from bases {} to {}\n'.format(key, end-start, start, end)
print(s)
当上述代码运行时,输出为:
Here are the items:
item_1:12 bases long, spanning from bases 7 to 19
item_2:3 bases long, spanning from bases 0 to 3
item_3:137 bases long, spanning from bases 54 to 191
item_4:2 bases long, spanning from bases 41 to 43
我认为这种使用字符串格式的方法实现了您最初的期望:
mydict1 = {
'item_1': [7,19],
'item_2': [0,3],
'item_3': [54,191],
'item_4': [41,43],
}
s = "Here are the items:" '\n'
for key, (start, end) in mydict1.items():
s += '{}: {} bases long, spanning from bases {} to {}\n'.format(key, end-start, start, end)
print(s)
当上述代码运行时,输出为:
Here are the items:
item_1:12 bases long, spanning from bases 7 to 19
item_2:3 bases long, spanning from bases 0 to 3
item_3:137 bases long, spanning from bases 54 to 191
item_4:2 bases long, spanning from bases 41 to 43
您可以使用.join方法连接列表的所有元素:
mydict1={
'项目1':[7,19],
'项目2':[0,3],
'项目3':[54191],
'项目4':[41,43],
}
base\u str=以下是项目:\n
公共_str=基长,从基跨越
out\U out=基本结构+\
“\n”.join[f{key}:{second-first}{common_str}{first}到{second}
对于mydict1.items中的键,第一个、第二个]
打印输出
输出:
您可以使用.join方法连接列表的所有元素:
mydict1={
'项目1':[7,19],
'项目2':[0,3],
'项目3':[54191],
'项目4':[41,43],
}
base\u str=以下是项目:\n
公共_str=基长,从基跨越
out\U out=基本结构+\
“\n”.join[f{key}:{second-first}{common_str}{first}到{second}
对于mydict1.items中的键,第一个、第二个]
打印输出
输出:
这就是你想要的-但是你得到了什么?这就是你想要的-但是你得到了什么?考虑到有不同的选择可用-旧式%格式、str.format方法、f-string最快、可读性最好的坚持OP方法,也许他们不知道更好的方法不会使senseyes现在,我的评论是当你使用连接时。现在编辑你的答案的开头,在那里你仍然提到连接…考虑到有不同的替代方案可用-旧式%格式,str.format方法,f-string最快和最可读的坚持OP方法,也许他们不知道更好的方法不会让人感觉到,现在,我的评论是当你使用连接时。现在还可以编辑答案的开头,在这里您仍然提到连接。。。