Python的列表可以像for循环那样,赋值起始值、结束值、步进值(start, stop, step),这样就可以省去第三方库的代码,更显精炼。
例一:将列表分割两个等分的列表。
a=['a', 'b', 'c', 'd', 'e', 'V', 'W', 'X', 'Y', 'Z']
half=int(len(a)/2)
print (a[0:half:1])
# 输出:['a', 'b', 'c', 'd', 'e']
print (a[half::1])
# 输出:['V', 'W', 'X', 'Y', 'Z']
例二:一维数组转二维数组(相当于reshape)。
a=['a', 'b', 'c', 'd', 'e', 'V', 'W', 'X', 'Y', 'Z']
half=int(len(a)/2)
b=[]
b=[a[i::half] for i in range(half)]
print (b)
# 输出:[['a', 'V'], ['b', 'W'], ['c', 'X'], ['d', 'Y'], ['e', 'Z']]
例三:列表倒序(相当于sort)。
a=['a', 'b', 'c', 'd', 'e', 'V', 'W', 'X', 'Y', 'Z']
print (a[::-1])
# 输出:
# ['Z', 'Y', 'X', 'W', 'V', 'e', 'd', 'c', 'b', 'a']
例四:判断字符串是否回文。
s=['上水居民居水上','长洲宾客奔周长']
for i in s:
if i==i[::-1]:
print (f'"{i}"是回文。')
else:
print (f'"{i}"不是回文。')
2022年11月21日更新
最近琢磨了一下匿名函数lambda的用法,原来可以做到更精炼、更显高级。例四的代码由6行压缩到3行:
s=['上水居民居水上','长洲宾客奔周长']
wm=lambda x:'是' if x==x[::-1] else '不是'
[print(f'"{i}"{wm(i)}回文。') for i in s]