2024-09-26 22:07:29 发布
网友
我需要将15个数字组成的数字字符串的中间字符与字符串的最后一个数字交换。你知道吗
所以我明白了:
def string(str): return str[-1:] + str[1:-1] + str[:1] print(string('abcd')) print(string('12345'))
结果:
dbca 52341
但是我怎样才能在初始输入字符串012345678912345中
其中7与字符串5中的最后一个字符交换?你知道吗
在这个非常具体的上下文中(总是长度为15的字符串的中间和最后一个字符),您的初始方法可以扩展到:
text[0:7]+text[-1]+text[8:-1]+text[7]
还要尽量避免变量名,如str,因为它们会隐藏相同名称的函数。你知道吗
str
您可以使用以下函数:
In [178]: def swap_index_values(my_string): ...: l = list(my_string) ...: middleIndex = (len(l) - 1)/2 ...: middle_val = l[middleIndex] ...: l[middleIndex] = l[-1] ...: l[-1] = middle_val ...: return ''.join(l) ...: In [179]: In [179]: a Out[179]: '012345678912345' In [180]: swap_index_values(a) Out[180]: '012345658912347'
在上面,您可以看到中间值和最后一个值已经交换。你知道吗
考虑
def last_to_mid(s): if len(s) == 1: return s if len(s)%2 == 0: raise ValueError('expected string of odd length') idx = len(s)//2 return f'{s[:idx]}{s[-1]}{s[idx+1:-1]}{s[idx]}'
操作如下:
>>> last_to_mid('021') '012' >>> last_to_mid('0123x4567') '01237456x' >>> last_to_mid('1') '1'
假设您有python3.6或更新版本的f-strings。你知道吗
在这个非常具体的上下文中(总是长度为15的字符串的中间和最后一个字符),您的初始方法可以扩展到:
还要尽量避免变量名,如
str
,因为它们会隐藏相同名称的函数。你知道吗您可以使用以下函数:
在上面,您可以看到中间值和最后一个值已经交换。你知道吗
考虑
操作如下:
假设您有python3.6或更新版本的f-strings。你知道吗
相关问题 更多 >
编程相关推荐