50行代码,Python从入门到入土
在学习Python的过程中,总会发现Python能够轻易的解决许多问题。
一些复杂的任务,甚至可以使用一行Python代码就能搞定。
下面,小F给大家介绍50个非常实用的Python一行代码。
希望大家能从中找到对自己有帮助的技巧 1、字母异位词
两个单词如果包含相同的字母,次序不同,则称为字母易位词(anagram)。
例如,"silent"和"listen"是字母易位词,而"apple"和"aplee"不是易位词。from collections import Counter s1 = "below" s2 = "elbow" print("anagram") if Counter(s1) == Counter(s2) else print("not an anagram")
使用一行Python代码,就能判断出来了。
2、二进制转十进制decimal = int("1010", 2) print(decimal) #103、将字符串转换为小写print("Hi my name is XiaoF".lower()) # "hi my name is xiaof" print("Hi my name is XiaoF".casefold()) # "hi my name is xiaof"4、将字符串转换为大写print("hi my name is XiaoF".upper()) # "HI MY NAME IS XIAOF"5、将字符串转换为字节print("convert string to bytes using encode method".encode()) # b"convert string to bytes using encode method"6、拷贝文件import shutil shutil.copyfile("source.txt", "dest.txt")7、快速排序qsort = lambda l: l if len(l) <= 1 else qsort([x for x in l[1:] if x < l[0]]) + [l[0]] + qsort([x for x in l[1:] if x >= l[0]]) print(qsort([17, 29, 11, 97, 103, 5])) # [5, 11, 17, 29, 97, 103]8、n个连续数的和n = 10 print(sum(range(0, n+1))) # 559、交换两个变量的值a,b = b,a10、斐波纳契数列fib = lambda x: x if x<=1 else fib(x-1) + fib(x-2) print(fib(20)) # 676511、将嵌套列表合并为一个列表main_list = [[0, 1, 2], [11, 12, 13], [52, 53, 54]] result = [item for sublist in main_list for item in sublist] print(result) > [0, 1, 2, 11, 12, 13, 52, 53, 54]12、运行一个HTTP服务器python3 -m http.server 8000 python2 -m SimpleHTTPServer13、反转列表numbers = [0, 1, 2, 11, 12, 13, 52, 53, 54] print(numbers[::-1]) # [54, 53, 52, 13, 12, 11, 2, 1, 0]14、阶乘import math fact_5 = math.factorial(5) print(fact_5) # 12015、在列表推导式中使用for和ifeven_list = [number for number in [1, 2, 3, 4] if number % 2 == 0] print(even_list) # [2, 4]16、列表中最长的字符串words = ["This", "is", "a", "list", "of", "words"] result = max(words, key=len) print(result) # "words"17、列表推导式li = [num for num in range(0, 10)] print(li) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]18、集合推导式num_set = {num for num in range(0, 10)} print(num_set) # {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}19、字典推导式dict_numbers = {x: x*x for x in range(1, 5)} print(dict_numbers) # {1: 1, 2: 4, 3: 9, 4: 16}20、if-elseprint("even") if 4 % 2==0 else print("odd")21、无限循环while 1:022、检查数据类型print(isinstance(2, int)) # True print(isinstance("allwin", str)) # True print(isinstance([3, 4, 1997], list)) # True23、While循环a = 5 while a > 0: a = a - 1 print(a) # 024、使用print语句写入文件print("Hello, World!", file=open("file.txt", "w"))
既可打印出信息,还能将信息保存文件。25、计算一个字符在字符串中出现的频率print("umbrella".count("l")) # 226、合并列表list1 = [1, 2, 4] list2 = ["XiaoF"] list1.extend(list2) print(list1) # [1, 2, 4, "XiaoF"]27、合并字典dict1 = {"name": "weiwei", "age": 23} dict2 = {"city": "Beijing"} dict1.update(dict2) print(dict1) # {"name": "weiwei", "age": 23, "city": "Beijing"}28、合并集合set1 = {0, 1, 2} set2 = {11, 12, 13} set1.update(set2) print(set1) # {0, 1, 2, 11, 12, 13}29、时间戳import time print(time.time())30、列表中出现次数最多的元素test_list = [9, 4, 5, 4, 4, 5, 9, 5, 4] most_frequent_element = max(set(test_list), key=test_list.count) print(most_frequent_element) # 431、嵌套列表numbers = [[num] for num in range(10)] print(numbers) # [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9]]32、八进制转十进制print(int("30", 8)) # 2433、将键值对转换为字典result = dict(name="XiaoF", age=23) print(result) # {"name": "XiaoF", "age": 23}34、求商和余数quotient, remainder = pmod(4, 5) print(quotient, remainder) # 0 4
pmod()函数返回当参数1除以参数2时,包含商和余数的元组。35、删除列表中的重复项print(list(set([4, 4, 5, 5, 6]))) # [4, 5, 6]36、按升序排序列表print(sorted([5, 2, 9, 1])) # [1, 2, 5, 9]37、按降序排序列表print(sorted([5, 2, 9, 1], reverse=True)) # [9, 5, 2, 1]38、获取小写字母表import string print(string.ascii_lowercase) # abcdefghijklmnopqrstuvwxyz39、获取大写字母表import string print(string.ascii_uppercase) # ABCDEFGHIJKLMNOPQRSTUVWXYZ40、获取0到9字符串import string print(string.digits) # 012345678941、十六进制转十进制print(int("da9", 16)) # 349742、日期时间import time print(time.ctime()) # Thu Aug 13 20:00:00 202143、将列表中的字符串转换为整数print(list(map(int, ["1", "2", "3"]))) # [1, 2, 3]44、用键对字典进行排序d = {"one": 1, "four": 4, "eight": 8} result = {key: d[key] for key in sorted(d.keys())} print(result) # {"eight": 8, "four": 4, "one": 1}45、用键值对字典进行排序x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0} result = {k: v for k, v in sorted(x.items(), key=lambda item: item[1])} print(result) # {0: 0, 2: 1, 1: 2, 4: 3, 3: 4}46、列表旋转li = [1, 2, 3, 4, 5] # li[n:] + li[:n], 右变左 print(li[2:] + li[:2]) # [3, 4, 5, 1, 2] # li[-n:] + li[:-n], 左变右 print(li[-1:] + li[:-1]) # [5, 1, 2, 3, 4]47、将字符串中的数字移除message = "".join(list(filter(lambda x: x.isalpha(), "abc123def4fg56vcg2"))) print(message) # abcdeffgvcg48、矩阵变换old_list = [[1, 2, 3], [3, 4, 6], [5, 6, 7]] result = list(list(x) for x in zip(*old_list)) print(result) # [[1, 3, 5], [2, 4, 6], [3, 6, 7]]49、列表过滤result = list(filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5, 6])) print(result) # [2, 4, 6]50、解包a, *b, c = [1, 2, 3, 4, 5] print(a) # 1 print(b) # [2, 3, 4] print(c) # 5
Python 是一种非常多样化且发展良好的语言,因此肯定会有许多我没有考虑到的功能,如果大家有知道的,可以在评论区告诉我,也可以私信我