是否有将5-7行合并为一行或整体上缩短了?

时间:2018-12-06 17:09:46

标签: python python-3.x syntax

我正在为CS类设计一个项目,我想知道是否有必要使以下代码更短或更有效:

data_numb = str(input("Input Data, then press enter: "))
phone_numb = int(''.join(list(filter(str.isdigit, data_numb))))
phone_numb2 = str(phone_numb)
list1 = list(phone_numb2)
list1.insert(0, "(")
list1.insert(4, ") ")
list1.insert(8, "-")
print("".join(list1))

2 个答案:

答案 0 :(得分:2)

您可以连接子字符串以缩短代码:

print('(' + phone_numb2[:3] + ') ' + phone_numb2[3:6] + '-' + phone_numb2[6:])

或带有f字符串(Python 3.6或更高版本):

print(f'({phone_numb2[:3]}) {phone_numb2[3:6]}-{phone_numb2[6:]}')

我觉得更整洁

答案 1 :(得分:1)

你可以做

data_numb = input("Input Data, then press enter: ")
p = ''.join(list(filter(str.isdigit, data_numb)))
res = '('+p[:3]+') '+p[3:6]+'-'+p[6:]
print(res)

用手插入。