Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使函数中的for循环在一行中返回(而不是打印)?_Python_Python 3.x - Fatal编程技术网

Python 如何使函数中的for循环在一行中返回(而不是打印)?

Python 如何使函数中的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' :

我试图通过将文本与字典代码匹配,将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' : '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
做任何工作之前,整个列表仍然会被扩展。使用列表comp
join
更快是表达式比列表理解慢的一种情况
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明确提到它们不能连接。谢谢!这个解决方案也有效!我把返回的缩进下错了,还在学习!