python字符串反转中间数前后反转_python面试题总结(一)字符串反转,写取指定数函数...

1.请至少用一种方法下面字符串的反转?

# 1.请至少用一种方法下面字符串的反转?

s = "hello"

print()

print("-a1-切片,简单的步长为-1, 即字符串的翻转(常用)-")

#方法一:切片,简单的步长为-1, 即字符串的翻转(常用);

a1=s[::-1]

print(a1)

print()

print("-a2-reverse()函数-")

#方法二:reverse()函数

li=list(s)

li.reverse()

a2="".join(li)

print(a2)

print()

print("-a3-递归函数, 递归的方式, 每次输出一个字-")

#方法三:递归函数, 递归的方式, 每次输出一个字

def digui(s1):

if s1 == "":

return s1

else:

return digui(s1[1:]) + s1[0]

a3=digui(s)

print(a3)

print()

print("-a4-reduce函数-")

#方法四:reduce函数

from functools import reduce

def rev(s):

return reduce(lambda x, y : y + x, s)

a4=rev(s)

print(a4)

print()

print("-a5-空字符串添加反转-")

#方法五:

a5="".join(reversed(s))

print(a5)

print()

print("-a6-for循环-")

#方法六:for循环

a6 = ""

for i in range(len(s) - 1, -1, -1):

a6 += s[i]

print(a6)

print()

print("-a7-交换前后字母的位置-")

#方法七:交换前后字母的位置;

t = list(s)

l = len(t)

for i,j in zip(range(l-1, 0, -1), range(l//2)):

t[i], t[j] = t[j], t[i]

a7="".join(t)

print(a7)

print()

print("--a8-双端队列, 使用extendleft()函数-")

#方法八:双端队列, 使用extendleft()函数;

from collections import deque

def next(s1):

d = deque()

d.extendleft(s1)

return "".join(d)

a8=next(s)

print(a8)

2.请手写一个lambda函数

# lambda 传入参数 : 返回值

# lambda num1,num2 : num1+num2

b=lambda x:x*2

print(b(3))3.请手写一个函数,用来取出1—100(均包含)中9的倍数或者有数字9的所有整数

# 3.请手写一个函数,用来取出1—100(均包含)中9的倍数或者有数字9的所有整数

li = []

def numli(num):

for i in range(1, num + 1):

if i % 9 == 0 or str(i).find("9") != -1:

li.append(i)

return li

c=numli(100)

print(c)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值