如何在函数中获取for循环以单行返回(不打印)?

时间:2019-02-08 18:29:31

标签: python python-3.x

我正在尝试通过将文本/数字ID(例如ABC123)与字典代码匹配来将文本/数字ID(例如ABC123)重命名为数字(例如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_id = "".join(code[x])new_id += code[x],但都没有用。

我希望在一行中获得“ 123123”作为新ID,而不是:

1

2

3

1

2

3

在多行上(抱歉,不知道为什么预览在双空格行上显示数字。我得到的结果是在单空格行上。)

3 个答案:

答案 0 :(得分:2)

只需连接一个空字符串即可

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

答案 1 :(得分:1)

您可以使用new_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

答案 2 :(得分:1)

使用get处理key不存在的情况,并在这种情况下使用默认值''

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))