一、回数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()筛选出回数。
1.下面是我的代码:
#!usr/bin/env python3
#-*- coding=utf -8-*-
#回数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()筛选出回数
def is_palindrome(n):
s = str(n) #另:对str也可以进行切片,和list方法一样
a = 0
if len(s) ==1:
return n
elif a <= len(s)/2:
if s[a] == s[len(s)-a-1]:
a = a+1
return n
output = filter(is_palindrome,range(1,1002))
print('1~100:',list(output))
2.下面是大神代码,最终的效果都是一样的:
#!usr/bin/env python3
#-*- coding=utf -8-*-
#回数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()筛选出回数
def is_palindrome(n):
return str(n) == str(n)[::-1]
output = filter(is_palindrome, range(1,1002))
print('1~1002:',list(output))
3.大神的代码不好理解,来复习下python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
原文链接:https://blog.csdn.net/qq_21840201/article/details/85084621
#!usr/bin/env python3
#-*- coding=utf -8-*-
import numpy as np
a = np.random.rand(5)
print(a)
[0.64061262 0.8451399 0.965673 0.89256687 0.48518743]
print(a[-1]) ###取最后一个元素
[0.48518743]
print(a[:-1]) ### 除了最后一个取全部
[0.64061262 0.8451399 0.965673 0.89256687]
print(a[::-1]) ### 取从后向前(相反)的元素
[0.48518743 0.89256687 0.965673 0.8451399 0.64061262]
print(a[2::-1]) ### 取从下标为2的元素翻转读取
[0.965673 0.8451399 0.64061262]