Python 如何使函数中的for循环在一行中返回(而不是打印)?
我试图通过将文本与字典代码匹配,将text/num-id(例如ABC123)重命名为num-id(例如123123)。(只是学习如何编码,所以如果你有更好的想法,请告诉我) 我试图寻找解决方案,但很多都是使用打印的。我需要将结果传递给另一个函数,因此无法使用printPython 如何使函数中的for循环在一行中返回(而不是打印)?,python,python-3.x,Python,Python 3.x,我试图通过将文本与字典代码匹配,将text/num-id(例如ABC123)重命名为num-id(例如123123)。(只是学习如何编码,所以如果你有更好的想法,请告诉我) 我试图寻找解决方案,但很多都是使用打印的。我需要将结果传递给另一个函数,因此无法使用print def convertid(old_id): code = {'A' : '1','B' : '2','C' : '3','D' : '4','E' : '5','F' : '6','G' : '7','H' :
def convertid(old_id):
code = {'A' : '1','B' : '2','C' : '3','D' : '4','E' : '5','F' :
'6','G' : '7','H' : '8','I' : '9','J' : '10','K' : '11','L' :
'12','M' : '13','N' : '14','O' : '15','P' : '16','Q' : '17','R' :
'18','S' : '19','T' : '20','U' : '21','V' : '22','W' : '23','X' :
'24','Y' : '25','Z' : '26', '1' : '1','2' : '2','3' : '3','4' :
'4','5' : '5','6' : '6','7' : '7','8' : '8','9' : '9','0' : '0'}
for x in old_id:
new_id = code[x],end = ""
return new_id
我也试过new\u id=“”.join(code[x])
,和new\u id+=code[x]
,但都不起作用
我希望在一行中获得“123123”作为新id,而不是:
一,
二,
三,
一,
二,
三,
在多行上(抱歉,不知道为什么预览会在双空行上显示数字。我得到的结果是在单空行上。)。只需在空字符串上连接即可:
code = {'A' : '1','B' : '2','C' : '3','D' : '4','E' : '5','F' :
'6','G' : '7','H' : '8','I' : '9','J' : '10','K' : '11','L' :
'12','M' : '13','N' : '14','O' : '15','P' : '16','Q' : '17','R' :
'18','S' : '19','T' : '20','U' : '21','V' : '22','W' : '23','X' :
'24','Y' : '25','Z' : '26', '1' : '1','2' : '2','3' : '3','4' :
'4','5' : '5','6' : '6','7' : '7','8' : '8','9' : '9','0' : '0'}
i = 'A4BC'
n = "".join(code[l] for l in i)
print(n)
# 1423
只需在空字符串上连接:
code = {'A' : '1','B' : '2','C' : '3','D' : '4','E' : '5','F' :
'6','G' : '7','H' : '8','I' : '9','J' : '10','K' : '11','L' :
'12','M' : '13','N' : '14','O' : '15','P' : '16','Q' : '17','R' :
'18','S' : '19','T' : '20','U' : '21','V' : '22','W' : '23','X' :
'24','Y' : '25','Z' : '26', '1' : '1','2' : '2','3' : '3','4' :
'4','5' : '5','6' : '6','7' : '7','8' : '8','9' : '9','0' : '0'}
i = 'A4BC'
n = "".join(code[l] for l in i)
print(n)
# 1423
您可以使用
new\u id+=code[x]
执行此操作,如下所示
def convertid(old_id):
code = {'A' : '1','B' : '2','C' : '3','D' : '4','E' : '5','F' :
'6','G' : '7','H' : '8','I' : '9','J' : '10','K' : '11','L' :
'12','M' : '13','N' : '14','O' : '15','P' : '16','Q' : '17','R' :
'18','S' : '19','T' : '20','U' : '21','V' : '22','W' : '23','X' :
'24','Y' : '25','Z' : '26', '1' : '1','2' : '2','3' : '3','4' :
'4','5' : '5','6' : '6','7' : '7','8' : '8','9' : '9','0' : '0'}
new_id = ''
for x in old_id:
new_id += code[x]
return new_id
print(convertid('ABC123')) # 123123
您可以使用
new\u id+=code[x]
执行此操作,如下所示
def convertid(old_id):
code = {'A' : '1','B' : '2','C' : '3','D' : '4','E' : '5','F' :
'6','G' : '7','H' : '8','I' : '9','J' : '10','K' : '11','L' :
'12','M' : '13','N' : '14','O' : '15','P' : '16','Q' : '17','R' :
'18','S' : '19','T' : '20','U' : '21','V' : '22','W' : '23','X' :
'24','Y' : '25','Z' : '26', '1' : '1','2' : '2','3' : '3','4' :
'4','5' : '5','6' : '6','7' : '7','8' : '8','9' : '9','0' : '0'}
new_id = ''
for x in old_id:
new_id += code[x]
return new_id
print(convertid('ABC123')) # 123123
使用
获取
,如果键
不存在,它将处理该情况,并在这种情况下使用默认值'
code = {'A' : '1','B' : '2','C' : '3','D' : '4','E' : '5','F' :
'6','G' : '7','H' : '8','I' : '9','J' : '10','K' : '11','L' :
'12','M' : '13','N' : '14','O' : '15','P' : '16','Q' : '17','R' :
'18','S' : '19','T' : '20','U' : '21','V' : '22','W' : '23','X' :
'24','Y' : '25','Z' : '26', '1' : '1','2' : '2','3' : '3','4' :
'4','5' : '5','6' : '6','7' : '7','8' : '8','9' : '9','0' : '0'}
i = 'A4BC'
print(''.join(code.get(l,'') for l in i))
使用
获取
,如果键
不存在,它将处理该情况,并在这种情况下使用默认值'
code = {'A' : '1','B' : '2','C' : '3','D' : '4','E' : '5','F' :
'6','G' : '7','H' : '8','I' : '9','J' : '10','K' : '11','L' :
'12','M' : '13','N' : '14','O' : '15','P' : '16','Q' : '17','R' :
'18','S' : '19','T' : '20','U' : '21','V' : '22','W' : '23','X' :
'24','Y' : '25','Z' : '26', '1' : '1','2' : '2','3' : '3','4' :
'4','5' : '5','6' : '6','7' : '7','8' : '8','9' : '9','0' : '0'}
i = 'A4BC'
print(''.join(code.get(l,'') for l in i))
给出的答案是你能得到的最接近的答案。从另一个角度看,你们知道这个转变是不可逆的,对吧?字母和数字映射到相同的整数值。
“26”
也可以是“Z”
或“BF”
。给出的答案与您所能得到的最接近。从另一个角度看,你们知道这个转变是不可逆的,对吧?字母和数字映射到相同的整数值。此外,“26”
可能是“Z”
或“BF”
n=“”。join([code[l]表示i中的l])
会更快,而且与@roganjosh一样干净?我没有意识到。希望今天晚些时候我能有时间进行一些计时测试。这很有趣,谢谢你是的,在join
做任何工作之前,整个列表仍然会被扩展。使用列表compjoin
更快是表达式比列表理解慢的一种情况n=“”。join([code[l]表示i中的l])
会更快,而且与@roganjosh一样干净?我没有意识到。希望今天晚些时候我能有时间进行一些计时测试。这很有趣,谢谢你是的,在join
做任何工作之前,整个列表仍然会被扩展。使用列表compSee会更快:不要在循环中连接字符串,使用join
@roganjosh谢谢这很有趣。接下来是我的评论。我将尝试跟踪链接:)请参阅:不要在循环中连接字符串,请使用join
@roganjosh谢谢这很有趣。接下来是我的评论。我将尝试跟踪链接:)请参阅:如果可以使用join
的话,请不要在循环中连接字符串。我只想指出,可以使用new\u id+=code[x]
来完成,因为OP明确提到它们不能。谢谢!这个解决方案也有效!我把返回的缩进下错了,还在学习!请参阅:如果可以使用join
,请不要在循环中连接字符串。我只想指出,可以使用new\u id+=code[x]
来连接字符串,因为OP明确提到它们不能连接。谢谢!这个解决方案也有效!我把返回的缩进下错了,还在学习!