python有很好的可读性和简洁性,学会其中的小的技巧,运用的恰当,会让我们的工作事半功倍。
以下是我总结的12个小的程序段,看似非常的简单,但是却非常的有技巧性,并且对个人的编程能力是一个很好的检验,大家应该在日常的编程中多多使用,多多练习,肯定会有帮助的。
1. 字符串的翻转
str1='wang jian hua'
#方法1
print(str1[::-1])
from _functools import reduce
#方法2
print(reduce(lambda x,y:y+x,str1))
说明:字符串的翻转,首先最简单的方法就是利用切片的操作,来实现翻转,其次可以利用reduce函数来实现翻转,在python3中,reduce函数需要从functools中进行导入。
输出:
auh naij gnaw
auh naij gnaw
2. 判断字符串是否是回文
str2='abccba'
str2_1='abcde'
def fun(string):
if string == string[::-1]:
print('该字符串是回文字符串')
else:
print('该字符串不是回文字符串')
fun(str2)
fun(str2_1)
输出:
该字符串是回文字符串
该字符串不是回文字符串
3. 单词大小写
print(str1.title()) #首字母大写
print(str1.upper()) #所有字母大写
print(str1.capitalize()) # 字符串首字母大写
输出:
Wang Jian Hua
WANG JIAN HUA
Wang jian hua
4. 字符串的拆分
str3='I love Python'
str3_1='I/love/Python'
str3_2=' I love Python '
print(str3.split()) #默认按照空格进行拆分,返回的是列表
print(str3.split('/'))
print(str3.split()) #默认去除字符串左右两边的空格,返回的是字符串
print(type(str3.strip()))
输出:
['I', 'love', 'Python']
['I love Python']
['I', 'love', 'Python']
<class 'str'>
5. 将列表中的字符串合并
lst=['W','jianhua','Hua']
print(' '.join(lst))
#去除字符串中的不需要的字符
import re
str4="W/ love. jian Hua"
print(' '.join(re.split('\W+',str4)))
输出:
W jianhua Hua
W love jian Hua
6. 查找字符串中唯一的元素
#寻找字符串中唯一的元素
s1='wwwwjjjjrrfttg'
print(''.join(set(s1)))
#对列表筛查
list1=[1,2,4,5,6,7,2,5,1]
print(list(set(list1)))
说明一下:set可以帮助我们快速的筛查重复的元素,set不仅可以对字符串,还可以针对列表进行筛查
7. 使出现重复的元素(乘法和加法)
#重复的元素
str1='python'
list1=[1,2,3]
print('乘法表示-方法1:{}'.format(str1*3))
print('乘法表示-方法2:{}'.format(list1*2))
str2='python'
list2=[1,2,3]
str_new=''
list2_new=[]
#加法表示
for i in range(2):
str_new+=str2
list2_new.extend(list2)
print(str_new)
print(list2_new)
输出:
乘法表示-方法1:pythonpythonpython
乘法表示-方法2:[1, 2, 3, 1, 2, 3]
pythonpython
[1, 2, 3, 1, 2, 3]
8. 扩展列表
#扩展列表
list3=[2,2,3,2]
print([2*x for x in list3])
#展开列表
list4=[[1,2,3],[4,5,6],[4,3],[1]]
print([i for k in list4 for i in k])
输出:
[4, 4, 6, 4]
[1, 2, 3, 4, 5, 6, 4, 3, 1]
9. 两个值交换
#方法1
a=1
b=2
a,b = b,a
print('交换后的值为:{0}--{1}'.format(a,b))
#方法2
c = a+b
a= c-a
b=c-a
print('交换后的结果为:{0}--{1}'.format(a,b))
输出结果:
交换后的值为:2--1
交换后的结果为:1--2
10. 统计列表中元素出现的频率
from collections import Counter
list5='wwwjjsspeeb'
counts = Counter(list5)
print('字符串每个元素的个数为:{}'.format(counts))
print('字符串单个元素的个数为:{}'.format(counts['w']))
print('字符串单个元素出现次数最多的是:{}'.format(counts.most_common(1)))
#迭代实现
dict1={}
for i in list5:
if i in dict1:
dict1[i]+=1
else:
dict1[i]=1
print("方法2统计出现次数最多的元素是:{}".format(max(dict1,key=lambda x:dict1[x])))
输出:
字符串每个元素的个数为:Counter({'w': 3, 'j': 2, 's': 2, 'e': 2, 'p': 1, 'b': 1})
字符串单个元素的个数为:3
字符串单个元素出现次数最多的是:[('w', 3)]
方法2统计出现次数最多的元素是:w
11. 统计代码消耗时间
#代码执行消耗时间
import time
start = time.time()
#代码块
for i in range(1,200000):
num = i
print("共消耗时间: ",time.time()-start,'s')
输出:
共消耗时间: 0.02888774871826172 s
12. 字典的合并
#字典的合并
dct1={'name':'wjh','age':20}
dct2={'city':'beijing','areas':'昌平区'}
#方法1
new_dict={**dct1,**dct2}
print('字典合并后的结果为:{}'.format(new_dict))
#方法2
dct1.update(dct2)
print('方法2合并后的结果:{}'.format(dct1))
输出:
字典合并后的结果为:{'name': 'wjh', 'age': 20, 'city': 'beijing', 'areas': '昌平区'}
方法2合并后的结果:{'name': 'wjh', 'age': 20, 'city': 'beijing', 'areas': '昌平区'}
总结就这些吧,多多练习吧!